更新时间:2024-06-27 13:27
HeapFree是一个Windows API函数。它用来释放堆内存
BOOL HeapFree(HANDLE hHeap,DWORD dwFlags,LPVOID lpMem);
hHeap
堆内存块释放。这个参数是HeapCreate或GetProcessHeap函数返回的句柄。
dwFlags
指定几个可控释放的内存块。指定以下值将覆盖flOptions中指定参数对应的值,当堆是由使用HeapCreate函数。
lpMem
被释放的内存块的指针。这HeapAlloc或HeapReAlloc函数返回的指针。如果这个指针为NULL,则为空。
如果函数成功,返回值是非零。否则为零。应用程序可以调用GetLastError扩展的错误信息。
DWORD dirlen = GetLogicalDriveStrings(0,NULL);//获取磁盘逻辑驱动的大小
LPSTR pdir = (LPSTR) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dirlen);//分配堆内存
LPSTR ptmp = pdir; //临时指针,指向pdir
GetLogicalDriveStrings(dirlen,pdir); //这时候才是获取主机中的所有盘符给缓冲区dirlen
CString szText;//用于记录所有盘符
while(*pdir != NULL)
{
szText += pdir;//累加
m_Edit.SetWindowText(szText);//m_Edit为编辑框控件,类型为Control,不是value
pdir = strchr(pdir,NULL)+1;//指针移动
}
HeapFree(hp,HEAP_NO_SERIALIZE,ptmp);//释放,如果不释放会继续增多占用内存,直到程序结束