CGlobalHeap-Klasse
Diese Klasse implementiert IAtlMemMgr mithilfe der globalen Win32-Heapfunktionen.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class CGlobalHeap : public IAtlMemMgr
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
CGlobalHeap::Assigned | Rufen Sie diese Methode auf, um einen Speicherblock zu belegen. |
CGlobalHeap::Free | Rufen Sie diese Methode auf, um einen Speicherblock freizugeben, der von diesem Speicher-Manager zugewiesen wurde. |
CGlobalHeap::GetSize | Rufen Sie diese Methode auf, um die zugewiesene Größe eines Speicherblocks abzurufen, der von diesem Speicher-Manager zugewiesen wurde. |
CGlobalHeap::Reallocate | Rufen Sie diese Methode auf, um den von diesem Speicher-Manager zugeordneten Arbeitsspeicher neu zuzuordnen. |
Hinweise
CGlobalHeap
implementiert Speicherzuordnungsfunktionen mithilfe der globalen Win32-Heapfunktionen.
Hinweis
Die globalen Heap-Funktionen sind langsamer als andere Speicherverwaltungsfunktionen und bieten nicht so viele Features. Daher sollten neue Anwendungen die Heap-Funktionen verwenden. Diese sind in der CWin32Heap-Klasse verfügbar. Globale Funktionen werden weiterhin von DDE und den Zwischenablagefunktionen verwendet.
Beispiel
Sehen Sie sich das Beispiel für IAtlMemMgr an.
Vererbungshierarchie
IAtlMemMgr
CGlobalHeap
Anforderungen
Kopfzeile: atlmem.h
CGlobalHeap::Assigned
Rufen Sie diese Methode auf, um einen Speicherblock zu belegen.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Parameter
nBytes
Die angeforderte Anzahl von Bytes im neuen Speicherblock.
Rückgabewert
Gibt einen Zeiger auf den Anfang des neu belegten Speicherblocks zurück.
Hinweise
Rufen Sie CGlobalHeap::Free oder CGlobalHeap::Reallocate auf, um den von dieser Methode zugewiesenen Speicher freizugeben.
Implementiert mithilfe von GlobalAlloc mit einem Flagparameter von GMEM_FIXED.
CGlobalHeap::Free
Rufen Sie diese Methode auf, um einen Speicherblock freizugeben, der von diesem Speicher-Manager zugewiesen wurde.
virtual void Free(void* p) throw();
Parameter
p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde. NULL ist ein gültiger Wert und führt nichts aus.
Hinweise
Implementiert mit GlobalFree.
CGlobalHeap::GetSize
Rufen Sie diese Methode auf, um die zugewiesene Größe eines Speicherblocks abzurufen, der von diesem Speicher-Manager zugewiesen wurde.
virtual size_t GetSize(void* p) throw();
Parameter
p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde.
Rückgabewert
Gibt die Größe des zugeordneten Speicherblocks in Bytes zurück.
Hinweise
Implementiert mithilfe von GlobalSize.
CGlobalHeap::Reallocate
Rufen Sie diese Methode auf, um den von diesem Speicher-Manager zugeordneten Arbeitsspeicher neu zuzuordnen.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Parameter
p
Ein Zeiger auf den Arbeitsspeicher, der zuvor von diesem Speicher-Manager zugeordnet wurde.
nBytes
Die angeforderte Anzahl von Bytes im neuen Speicherblock.
Rückgabewert
Gibt einen Zeiger auf den Anfang des neu belegten Speicherblocks zurück.
Hinweise
Rufen Sie CGlobalHeap::Free auf, um den von dieser Methode zugewiesenen Speicher freizugeben.
Implementiert mithilfe von GlobalReAlloc.
Siehe auch
Klassenübersicht
CComHeap-Klasse
CWin32Heap-Klasse
CLocalHeap-Klasse
CComHeap-Klasse
IAtlMemMgr-Klasse