Sdílet prostřednictvím


CWin32Heap::CWin32Heap

Konstruktor

CWin32Heap( ) throw( ); 
CWin32Heap( 
   HANDLE hHeap  
) throw( ); 
CWin32Heap( 
   DWORD dwFlags, 
   size_t nInitialSize, 
   size_t nMaxSize = 0  
);

Parametry

  • hHeap
    Existující objekt haldy

  • dwFlags
    Příznaky použité při vytváření haldy

  • nInitialSize
    Počáteční velikost haldy

  • nMaxSize
    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

Viz také

Další zdroje

HeapCreate