globalFree 函数 (winbase.h)
释放指定的全局内存对象并使其句柄失效。
语法
HGLOBAL GlobalFree(
[in] _Frees_ptr_opt_ HGLOBAL hMem
);
参数
[in] hMem
全局内存对象的句柄。 此句柄由 GlobalAlloc 或 GlobalReAlloc 函数返回。 释放使用 LocalAlloc 分配的内存是不安全的。
返回值
如果函数成功,则返回值为 NULL。
如果函数失败,则返回值等于全局内存对象的句柄。 要获得更多的错误信息,请调用 GetLastError。
注解
如果进程在释放内存后检查或修改内存,则可能会发生堆损坏,或者可能会生成访问冲突异常 (EXCEPTION_ACCESS_VIOLATION) 。
GlobalFree 函数将释放锁定的内存对象。 锁定的内存对象的锁计数大于零。 GlobalLock 函数锁定全局内存对象,并将锁计数递增 1。 GlobalUnlock 函数将其解锁,并将锁计数递减 1。 若要获取全局内存对象的锁计数,请使用 GlobalFlags 函数。
如果应用程序在系统的调试版本下运行, GlobalFree 将发出一条消息,告知你正在释放锁定的对象。 如果要调试应用程序, GlobalFree 将在释放锁定的对象之前输入断点。 这样,便可以验证预期行为,然后继续执行。
示例
有关示例,请参阅 GlobalAlloc。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |