首页 > 其他 > 详细

小记——LocalFree与指针

时间:2014-01-17 18:57:50      阅读:548      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
功能
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
bubuko.com,布布扣
bubuko.com,布布扣
今天读《Windows核心编程》遇到了HLOCAL这个变量,
在WinDef.h中发现
typedef HANDLE              HLOCAL;
在WinNt.h中发现
typedef void *HANDLE;
原来HANDLE和HLOCAL就是void*。
MSDN上的解释为:Handle to a local memory block. 直译是:一个局部的内存块。额,看typedef的这些定义,发现就是指向一块内存区域的指针。
bubuko.com,布布扣
bubuko.com,布布扣
#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;
}
bubuko.com,布布扣
LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候再转换回来。
可以将其理解为long型的指针,指向void型。

小记——LocalFree与指针

原文:http://www.cnblogs.com/jiaoluo/p/3524191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!