构造函数。
CWin32Heap( ) throw( );
CWin32Heap(
HANDLE hHeap
) throw( );
CWin32Heap(
DWORD dwFlags,
size_t nInitialSize,
size_t nMaxSize = 0
);
参数
hHeap
一个现有的堆对象。dwFlags
在创建堆时使用的标志。nInitialSize
堆的初始大小。nMaxSize
堆的最大大小。
备注
在分配内存之前,必须为 CWin32Heap 对象提供有效的堆句柄。 实现此目的的最简单的方法是使用进程堆:
CWin32Heap MyHeap(GetProcessHeap());
也可以向构造函数提供现有堆句柄,在这种情况下,新对象不会接管此堆的所有权。 在删除 CWin32Heap 对象时,原始堆句柄仍将有效。
还可使用 CWin32Heap::Attach 将现有堆还附加到新对象。
如果在单个线程中执行所有操作时需要堆,则最佳方法是创建如下对象:
CWin32Heap MyHeap(HEAP_NO_SERIALIZE, SomeInitialSize);
参数 HEAP_NO_SERIALIZE 指定在堆函数分配和释放内存时不会使用互斥,从而使性能得到相应的提升。
第三个参数默认为 0,这使堆能够根据需要增长。 有关内存大小和标志的说明,请参阅 HeapCreate。
要求
**标头:**atlmem.h