Freigeben über


CWin32Heap::CWin32Heap

Der Konstruktor.

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

Parameter

  • hHeap
    Ein vorhandenes Heapobjekt.

  • dwFlags
    Bei der Erstellung des Heaps verwendete Flags.

  • nInitialSize
    Die Anfangsgröße des Heaps.

  • nMaxSize
    Die maximale Größe des Heaps.

Hinweise

Vor dem Zuordnen von Speicher muss das CWin32Heap-Objekt mit einem gültigen Heaphandle bereitgestellt werden. Das geht am einfachsten mit dem Prozessheap:

CWin32Heap MyHeap(GetProcessHeap());   

Es ist auch möglich, ein vorhandenes Heaphandle an den Konstruktor auszugeben; in diesem Fall übernimmt das neue Objekt nicht Besitz des Heaps. Wenn das CWin32Heap-Objekt gelöscht wird, ist das ursprüngliche Heaphandle weiterhin gültig.

Ein vorhandenes Heap kann mit CWin32Heap::Attach auch an das neue Objekt angefügt werden.

Wenn ein Heap erforderlich ist, in dem alle Operationen von einem einzigen Thread ausgeführt werden, empfiehlt es sich, das Objekt folgendermaßen zu erstellen:

CWin32Heap MyHeap(HEAP_NO_SERIALIZE, SomeInitialSize);   

Der Parameter HEAP_NO_SERIALIZE gibt an, dass kein gegenseitiger Ausschluss verwendet wird, wenn die Heapfunktionen Arbeitsspeicher zuordnen und freigeben und sich die Leistung in entsprechendem Maße erhöht.

Der dritte Parameter beträgt standardmäßig 0; dadurch kann das Heap nach Bedarf vergrößert werden. Eine Erläuterung der Speichergrößen und der Flags finden Sie unter HeapCreate.

Anforderungen

Header: atlmem.h

Siehe auch

Weitere Ressourcen

HeapCreate