Freigeben über


CGlobalHeap-Klasse

Hinweis

Die aktive Vorlagenbibliothek (ACTIVE Template Library, ATL) wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.

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