winbase.h


GlobalFree

la función GlobalFree libera el objeto de memoria gloabl e invalida su manipilador.

Sintaxis

HGLOBAL GlobalFree(
    HGLOBAL hMem  // manipulador de objeto de memoria global
   );

Parámetros:

hMem: identifica el objeto de memoria global. Este manipulador es devuelto por por las funciones GlobalAlloc o GlobalReAlloc.

Valor de retorno

Si la función tiene éxito, el valor de retorno es NULL.

Si la función falla, el valor de retorno es igual al manipulador de memoria global. Para obtener información más detallada sobre el error, llamar a la función GetLastError.

Observaciones

Si el proceso intenta examinar o modificar la memoria después de que haya sido liberada, se puede producir una corrupción del montón o se puede generar una excepción de violación de acceso (EXCEPTION_ACCESS_VIOLATION).

Si el parámetro hMem es NULL, GlobalFree falla y el sistema genera una excepción de violación de acceso.

Tanto GlobalFree como LocalFree liberarán un objeto de memoria bloqueado. Un objeto de memoria bloqueadi tiene un valor de contador de bloqueos mayor de cero. La función GlobalLock bloquea un objeto de memoria global e incrementa el contador de bloqueos en una unidad. La función GlobalUnlock desbloquea el objeto y decrementa el contador de bloqueos en una unidad. Para obtener el contador de bloqueos para un objeto de memoria global, usar la función GlobalFlags.

Windows NT: Sin embargo, si se ejecuta una aplicación bajo la versión de depuración de Windows NT, como una de las distribuidas en el CD-ROM SDK, tanto GlobalFree como LocalFree introducen un punto de ruptura justo antes de liberar un objeto bloqueado. Esto permite al programador hacer una doble verificación del comportamiento indicado. Tecleando G mientras se usa el depurador en esta situación se permite que la operación de liberación se lleve a término.