windows堆管理API
来源:互联网 发布:erp软件 crm 编辑:程序博客网 时间:2024/05/21 16:36
虽然我们通常编写程序是使用C运行时库的new或者malloc申请对内存,实际上C运行时库也是调用windows提供的一套用来管理堆内存的API。包括:HeapCreate, HeapDestroy, HeapAlloc, HeapFree...
每个进程要使用堆内存,就需要调用HeapCreate为自己创建一个私有的堆对象。
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
flOptions : 堆选项,C运行时库传入0,取默认值。
dwInitialSize : 初始大小,C运行时库传入4096.
dwMaximumSize : 允许分配的最大值,C运行时库传入0,表示可以申请非常大的内存。
函数返回一个句柄,表示这个堆对象,其他API都需要这个句柄。
进程销毁前,应该调用HeapDestroy销毁这个对象,此函数很简单,把句柄传入即可。
堆对象申请以后,就可以调用HeapAlloc申请堆内存了。
LPVOID WINAPI HeapAlloc(HANDLE hHeap, dwFlags, SIZE_T dwBytes)
hHeap : HeapCreate的返回值。
dwFlags : C运行时库传入0,取默认值。
dwBytes : 需要申请的堆内存的实际大小。
函数返回内存的地址。
申请了就要释放,调用HeapFree。
BOOL WINAPI HeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem)
hHeap : HeapCreate的返回值,似乎也可以调用GetProcessHeap来获取。
dwFlags : 继续为0。
lpMem : 也就是HeapAlloc的返回值,堆内存的地址。
在C运行时库中对这些API进行了一层封装,并加入了一些特性。
- windows堆管理API
- windows 堆管理
- windows 卷管理API
- Windows编程中的堆管理
- Windows编程中的堆管理
- Windows编程中的堆管理
- Windows编程中的堆管理
- Window API (三)堆管理操作
- Windows系统编程学习笔记-堆管理
- 《Windows核心编程》---堆管理函数
- 《Windows核心编程》---堆管理函数
- 研究windows默认堆的管理方式
- [ZZ]windows堆管理的函数
- Windows API 磁盘和驱动器管理
- Windows内存管理的API函数
- windows内存管理和API函数
- Windows内存管理API的体系结构
- windows api 堆的简单操作(笔记)
- keytool生成证书与Tomcat SSL配置
- Handler
- symbian 打开拨号对话框并设置号码
- BCB TEdit组件限制输入数字
- 记录每天新建的角色
- windows堆管理API
- oracle 隐式游标,显示游标,游标循环,动态SELECT语句和动态游标,异常处理,自定义异常
- sizeof和strlen的区别
- 工程师必备十大“小软件”
- UNL 类图解释说明
- linux系统文件流、缓冲及描述符与进程间关系详解
- ASP.NET MVC分页控件MvcPager 1.5版发布
- 清除内容警告器密码方法
- Windows下完成端口移植Linux下的epoll(续)