GlobalFree函数释放指定的全局内存对象并使其句柄无效。
HGLOBAL GlobalFree(
HGLOBAL 【HMEM】 | //处理全局内存对象 |
); |
参数
【HMEM】
标识全局内存对象。该手柄由GlobalAlloc或GlobalReAlloc功能返回。
返回值
如果函数成功,返回值为NULL。
如果函数失败,返回值等于全局内存对象的句柄。要获取扩展错误信息,请调用GetLastError.
备注
如果进程尝试在释放内存后检查或修改内存,则可能会发生堆损坏或访问冲突异常(EXCEPTION_ACCESS_VIOLATION)。
如果【hgblMemar-Latn】参数为NULL,则GlobalFree将失败,系统会生成访问冲突异常。
GlobalFree和LocalFree都将释放锁定的内存对象。锁定的内存对象的锁定计数大于零。GlobalLock功能锁定全局内存对象,并将锁定计数递增1。GlobalUnlock功能解锁,并将锁定数减1。要获取全局内存对象的锁计数,请使用GlobalFlags功能。
Windows NT:但是,如果应用程序正在Windows NT的调试(DBG)版本(如分发在SDK CD-ROM上的应用程序)下运行,则GlobalFree和LocalFree在释放锁定的对象之前输入断点。这使程序员能够仔细检查预期的行为。在这种情况下使用调试器时键入G会使释放操作发生。
也可以看看
GlobalAlloc, GlobalFlags, GlobalLock, GlobalReAlloc, GlobalUnlock, LocalFree