Programación General > ASM (Ensamblador)
Globalrealloc
Enko:
¿Como se usa esta funcion?
Segun entiendo sirve para redimensionar un bloque de memoria no FIXED que fue solicitado con GlobalAlloc . (Entonces, primero solicito el bloque, le hago lock y..)
--- Código: Text --- invoke GlobalReAlloc, [hMemory], GMEM_MOVEABLE+GMEM_ZEROINIT,MEMSIZEmov [hMemory],eax; eax es 0, errorinvoke [GlobalLock,hMemory]mov [pMemory],eax pero esto no resulta
Por alguna razon, cuando la uso, en eax me devuelve 0 o sea, error.
¿Falta algo en la parte de GlobalReAlloc?
Para safar, uso esto>
--- Código: Text --- GlobalUnlock, [pMemory]GlobalFree, [hMemory]GlobalAlloc, .........GlobalLock Libero la memoria y la vuelvo a pedir pero creo que seria mejor usar GlobalReAlloc, pero esta falla.
Eternal Idol:
No se para que usas Global* pero si copiaste el codigo correctamente estas pasando los parametros al revez:
HGLOBAL GlobalReAlloc(HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags);
Primero el nuevo tamaño y despues los flags.
PD. Es mejor usar Heap*.
Enko:
Esa es la otra duda que tenía, en los tutoriales de eczelion usan GlobalAlloc peró vi en un codigo que se usaba HeapAlloc. (No sabía cual era mejor)
Ahora que lo veo, creo que si los pasé al revés. Igualmente voy a cambiar a HeapAlloc.
Eternal Idol:
--- Cita de: "Enko" --- Esa es la otra duda que tenía, en los tutoriales de eczelion usan GlobalAlloc peró vi en un codigo que se usaba HeapAlloc. (No sabía cual era mejor)
--- Fin de la cita ---
Segun la biblia (MSDN):
Note The global functions are slower than other memory management functions and do not provide as many features. Therefore, new applications should use the heap functions. However, the global functions are still used with DDE, the clipboard functions, and OLE data objects.
Y segun yo y mi depurador Globa* termina llamando a Heap* (que en realidad esta redireccionado a RtlHeap* en la NTDLL).
Enko:
--- Citar ---Y segun yo y mi depurador Globa* termina llamando a Heap* (que en realidad esta redireccionado a RtlHeap* en la NTDLL).
--- Fin de la cita ---
:o, grax.
Por ahora, cuando depuro, si veo una llamada a la API, le doy a F8 para que se saltee encima y no me muestre el codigo de las dlls que mi nivel de asm es mucho inferior a eso.
PD: dentro de pronto voy sacar un lector de bmp de 24 con rutinas propias. Por lo menos en eso estoy... :lightsabre:
Navegación
[#] Página Siguiente
Ir a la versión completa