Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#1062
Es un error al enlazar, no estas compilando el Clientes.cpp en lo absoluto o no estas enlazando el resultado de su compialcion (Clientes.o).
#1063
Si; siempre que se use el mismo heap - no importa cual - para reservar y liberar un bloque de memoria determinado no habra problemas.
#1064
El tema es que ademas de GetProcessHeap existe HeapCreate y a esta funcion llama la RTL cuando se inicializa (un proceso puede tener mas de un heap). No, si hubieran estado en diferentes heaps pasaria lo que pasa con con el siguiente codigo:

Código (c++) [Seleccionar]
HANDLE anotherHeap = HeapCreate(0, 0x1000, 0x1000 * 1024);
LPVOID memoryBlock = HeapAlloc(anotherHeap, HEAP_ZERO_MEMORY, 0x1000);
HeapFree(GetProcessHeap(), 0, memoryBlock);


HEAP[heapcrash.exe]: Invalid address specified to RtlFreeHeap( 000000F1B8E00000, 000000F1B9170720 )
(de6c.ed7c): Break instruction exception - code 80000003 (first chance)

0:000> kb
RetAddr           : Args to Child                                                           : Call Site
00007fff`6ad05a8e : 00007fff`6acef650 00007fff`6acef520 000000f1`b8e00000 000000f1`b9170720 : ntdll!RtlpBreakPointHeap+0x1d
00007fff`6ad419e5 : 000000f1`b8e00000 00000000`00000000 00000000`00000000 01000000`00000080 : ntdll!RtlpValidateHeapEntry+0x5429a
00007fff`6acfbdaf : 000000f1`b8e00000 00000000`50000063 000000f1`b9170000 00007fff`6ad41706 : ntdll!RtlDebugFreeHeap+0xb9
00007fff`6ac829f8 : 000000f1`b8e00000 000000f1`b9170720 000000f1`b9170710 000000f1`b9170710 : ntdll!RtlpFreeHeap+0x7908f
*** WARNING: Unable to verify checksum for heapcrash.exe
00007ff7`9749105d : 00000000`00000001 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlFreeHeap+0x428
00007ff7`974911b8 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : heapcrash!main+0x4d [d:\src\heapcrash.cpp @ 9]
00007fff`6a8016ad : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : heapcrash!__tmainCRTStartup+0x144 [f:\dd\vctools\crt\crtw32\startup\crt0.c @ 255]
00007fff`6aca4409 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0xd
00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d


Se produce una excepcion no controlada; si liberaramos en anotherHeap no habria ninguna excepcion.

Y si, por logica si sobrecargas de esa manera (HeapFree tambien con GetProcessHeap por supuesto) no vas a tener problemas, siempre que se use el mismo heap para reservar y liberar un determinado bloque de memoria.
#1065
Si queres hacer un juego para un telefono o para un navegador Java es una opcion, de otra manera C++.
#1066
Tenes ejemplos (con codigo) de sobra en el enlace que te deje.
#1068
Mira la documentacion de la API CreateFile prestando especial atencion a la sección Communications Resources.
#1069
Programación C/C++ / Re: Programa pasar a binario!
15 Noviembre 2014, 22:38 PM
No existe practicamente ninguna circunstancia en la cual este justificado poner codigo completo compilable para responder un hilo: no se hacen tareas ajenas.
#1070
ASM / Re: ejercicio de assembler en 8086
15 Noviembre 2014, 21:56 PM
http://www.ctyme.com/intr/rb-2554.htm

Como dice la documentacion, en el registro dl tenes que poner el caracter (en este caso el asterisco).