CWin32Heap::CWin32Heap
Konstruktor
CWin32Heap( ) throw( );
CWin32Heap(
HANDLE hHeap
) throw( );
CWin32Heap(
DWORD dwFlags,
size_t nInitialSize,
size_t nMaxSize = 0
);
Parametry
hHeap
Existující objekt haldydwFlags
Příznaky použité při vytváření haldynInitialSize
Počáteční velikost haldynMaxSize
Maximální velikost haldy
Poznámky
Před přidělením paměti je nezbytné poskytnout objekt CWin32Heap s platným popisovačem haldy.Nejsnáze toho dosáhnete pomocí haldy procesu:
CWin32Heap MyHeap(GetProcessHeap());
Je také možné zadat do konstruktoru existující popisovač haldy; v tomto případě nový objekt nepřevezme vlastnictví haldy.Původní popisovač haldy bude po odstranění objektu CWin32Heap stále platit.
Existující haldu lze také připojit k novému objektu pomocí CWin32Heap::Attach.
Pokud se halda vyžaduje tam, kde se všechny operace provádějí z jednoho vlákna, je nejlepší vytvořit tento objekt takto:
CWin32Heap MyHeap(HEAP_NO_SERIALIZE, SomeInitialSize);
Parametr HEAP_NO_SERIALIZE určuje, že se nebude používat vzájemné vyloučení, pokud funkce haldy přidělují a uvolňují paměť, což přinese příslušné zvýšení výkonu.
Třetí parametr má výchozí hodnotu 0, což umožňuje, aby halda narůstala podle potřeby.Vysvětlení velikostí paměti a příznaků najdete v tématu HeapCreate.
Požadavky
Hlavičkový soubor: atlmem.h