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