CWin32Heap::CWin32Heap
更新 : 2007 年 11 月
コンストラクタです。
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 パラメータは、ヒープ関数がメモリを割り当てたり解放したりするときに、排他制御を行わないことを指定します。結果的に、パフォーマンスは向上します。
3 番目のパラメータの既定値は 0 です。既定値を指定すると、ヒープは必要に応じて拡大します。メモリ サイズとフラグの詳細については、HeapCreate の説明を参照してください。
必要条件
ヘッダー : atlmem.h