功能 2函数原型 3参数 4返回值 5说明 6使用条件 Windows API 1功能 编辑 释放局部内存对象并使句柄失效 2函数原型 编辑 HLOCAL LocalFree ( HLOCAL hMem); 3参数 编辑 hMem:局部内存对象的句柄,通过函数LocalAlloc或LocalReAlloc返回的。 4返回值 编辑 函数执行成功返回NULL,否则返回内存对象的句柄,要获得详细错误信息,调用GetLastError函数。 5说明 编辑 内存被释放后再访问会出现EXCEPTION_ACCESS_VIOLATION异常 如果参数为NULL,则LocalFree忽略参数并返回NULL 锁定的内存(LocalLock)也能被释放。 6使用条件 编辑 OS版本:Windows CE 1.0或更新 头文件:Winbase.h 链接库:Coredll.lib
今天读《Windows核心编程》遇到了HLOCAL这个变量, 在WinDef.h中发现 typedef HANDLE HLOCAL; 在WinNt.h中发现 typedef void *HANDLE; 原来HANDLE和HLOCAL就是void*。 MSDN上的解释为:Handle to a local memory block. 直译是:一个局部的内存块。额,看typedef的这些定义,发现就是指向一块内存区域的指针。
#include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { HLOCAL h = NULL; int *a = (int*)malloc(sizeof(int)); h = a; *a = 3; printf("%d %d/n",a,h); return 0; }
LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候再转换回来。
可以将其理解为long型的指针,指向void型。