Freigeben über


CLocalHeap-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 lokalen 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 CLocalHeap : public IAtlMemMgr

Member

Öffentliche Methoden

Name Beschreibung
CLocalHeap::Assigned Rufen Sie diese Methode auf, um einen Speicherblock zu belegen.
CLocalHeap::Free Rufen Sie diese Methode auf, um einen Speicherblock freizugeben, der von diesem Speicher-Manager zugewiesen wurde.
CLocalHeap::GetSize Rufen Sie diese Methode auf, um die zugewiesene Größe eines Speicherblocks abzurufen, der von diesem Speicher-Manager zugewiesen wurde.
CLocalHeap::Reallocate Rufen Sie diese Methode auf, um den von diesem Speicher-Manager zugeordneten Arbeitsspeicher neu zuzuordnen.

Hinweise

CLocalHeap implementiert Speicherzuordnungsfunktionen mithilfe der lokalen Win32-Heap-Funktionen.

Hinweis

Die lokalen 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.

Beispiel

Sehen Sie sich das Beispiel für IAtlMemMgr an.

Vererbungshierarchie

IAtlMemMgr

CLocalHeap

Anforderungen

Kopfzeile: atlmem.h

CLocalHeap::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 CLocalHeap::Free oder CLocalHeap::Reallocate auf, um den von dieser Methode zugewiesenen Speicher freizugeben.

Implementiert mithilfe von LocalAlloc mit einem Flag-Parameter von LMEM_FIXED.

CLocalHeap::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 LocalFree.

CLocalHeap::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 mit LocalSize.

CLocalHeap::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 CLocalHeap::Free auf, um den von dieser Methode zugewiesenen Speicher freizugeben.

Implementiert mithilfe von LocalReAlloc.

Siehe auch

Klassenübersicht
CComHeap-Klasse
CWin32Heap-Klasse
CGlobalHeap-Klasse
CComHeap-Klasse
IAtlMemMgr-Klasse