zoukankan      html  css  js  c++  java
  • 小记——LocalFree与指针

    功能
    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型。
  • 相关阅读:
    【spring 注解驱动开发】spring ioc 原理
    目录大纲,欢迎来戳
    进程相关
    网络编程相关知识点
    Django基本知识
    浅谈 Web框架
    浅谈 Flask 框架
    AJAX小示例
    浅谈cookie 和 session
    ORM:对象关系映射
  • 原文地址:https://www.cnblogs.com/jiaoluo/p/3524191.html
Copyright © 2011-2022 走看看