Udostępnij za pośrednictwem


CWin32Heap::CWin32Heap

Konstruktor.

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

Parametry

  • hHeap
    Istniejący obiekt sterty.

  • dwFlags
    Flagi używane do tworzenia sterty.

  • nInitialSize
    Początkowy rozmiar sterty.

  • nMaxSize
    Maksymalny rozmiar sterty.

Uwagi

Przed przydzieleniem pamięci należy dostarczyć obiekt CWin32Heap z prawidłowym uchwytem sterty.Najprościej to osiągnąć przy użyciu sterty procesu:

CWin32Heap MyHeap(GetProcessHeap());   

Użytkownik może również dostarczyć istniejący uchwyt sterty do konstruktora, w którym to przypadku nowy obiekt nie przejmuje sterty na własność.Oryginalny uchwyt sterty nadal będzie ważny, gdy obiekt CWin32Heap zostanie usunięty.

Istniejącą stertę można również dołączyć do nowego obiektu przy użyciu CWin32Heap::Attach.

Jeśli sterta jest wymagana tam, gdzie wszystkie operacje są wykonywane z jednego wątku, najlepszym sposobem jest utworzenie obiektu w następujący sposób:

CWin32Heap MyHeap(HEAP_NO_SERIALIZE, SomeInitialSize);   

Parametr HEAP_NO_SERIALIZE określa, że wzajemne wykluczenie nie będzie używane, gdy funkcje sterty przydzielają i zwalniają pamięć, z adekwatnym wzrostem wydajności.

Domyślne ustawienie trzeciego parametru to 0, dzięki czemu sterta może się rozrastać zgodnie z potrzebami.Zobacz HeapCreate, aby uzyskać objaśnienia na temat rozmiarów pamięci i flag.

Wymagania

Nagłówek: atlmem.h

Zobacz też

Inne zasoby

HeapCreate