CWin32Heap::CWin32Heap

构造函数。

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

请参见

其他资源

HeapCreate