Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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