LocalFree函数释放指定的本地内存对象并使其句柄无效。
HLOCAL LocalFree
HLOCAL 【HMEM】 | //本地内存对象的句柄 |
); |
参数
【HMEM】
标识本地内存对象。该手柄由LocalAlloc或LocalReAlloc功能返回。
返回值
如果函数成功,返回值为NULL。
如果函数失败,返回值等于本地内存对象的句柄。要获取扩展错误信息,请调用GetLastError.
备注
如果进程尝试在释放内存后检查或修改内存,则可能会发生堆损坏,或者可能会生成访问冲突异常(EXCEPTION_ACCESS_VIOLATION)。
如果【HMEM】参数为NULL,则LocalFree将忽略该参数并返回NULL。
LocalFree即使内存对象被先前调用LocalLock功能锁定,也会成功。LocalLock功能锁定本地内存对象,并将锁定计数递增1。LocalUnlock功能解锁,并将锁定计数减1。要获取本地内存对象的锁定计数,请使用LocalFlags功能。LocalFree将释放锁定的内存对象。锁定的内存对象的锁定计数大于零。
GlobalFree和LocalFree都将释放锁定的内存对象。但是,如果您在Windows NT或Windows 95的调试版本下运行应用程序,则GlobalFree和LocalFree将发出一条消息,通知您发生这种情况。如果您正在调试应用程序,GlobalFree和LocalFree将在释放锁定的对象之前输入硬编码的断点。这可以让您仔细检查预期的行为。
也可以看看
GlobalFree, LocalAlloc, LocalFlags, LocalLock, LocalReAlloc, LocalUnlock