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