Udostępnij za pośrednictwem


Klasa CGlobalHeap

Ta klasa implementuje program IAtlMemMgr przy użyciu globalnych funkcji stert win32.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CGlobalHeap : public IAtlMemMgr

Elementy członkowskie

Metody publiczne

Nazwa/nazwisko opis
CGlobalHeap::Przydziel Wywołaj tę metodę, aby przydzielić blok pamięci.
CGlobalHeap::Free Wywołaj tę metodę, aby zwolnić blok pamięci przydzielony przez tego menedżera pamięci.
CGlobalHeap::GetSize Wywołaj tę metodę, aby uzyskać przydzielony rozmiar bloku pamięci przydzielonego przez tego menedżera pamięci.
CGlobalHeap::Reallocate Wywołaj tę metodę, aby ponownie przydzielić pamięć przydzieloną przez tego menedżera pamięci.

Uwagi

CGlobalHeap implementuje funkcje alokacji pamięci przy użyciu globalnych funkcji sterty Win32.

Uwaga

Globalne funkcje stert są wolniejsze niż inne funkcje zarządzania pamięcią i nie zapewniają tak wielu funkcji. W związku z tym nowe aplikacje powinny używać funkcji stert. Są one dostępne w klasie CWin32Heap . Funkcje globalne są nadal używane przez funkcję DDE i schowka.

Przykład

Zobacz przykład dla programu IAtlMemMgr.

Hierarchia dziedziczenia

IAtlMemMgr

CGlobalHeap

Wymagania

Nagłówek: atlmem.h

CGlobalHeap::Przydziel

Wywołaj tę metodę, aby przydzielić blok pamięci.

virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();

Parametry

nBajty
Żądana liczba bajtów w nowym bloku pamięci.

Wartość zwracana

Zwraca wskaźnik na początek nowo przydzielonego bloku pamięci.

Uwagi

Wywołaj metodę CGlobalHeap::Free lub CGlobalHeap::Reallocate , aby zwolnić pamięć przydzieloną przez tę metodę.

Zaimplementowano przy użyciu metody GlobalAlloc z parametrem flagi GMEM_FIXED.

CGlobalHeap::Free

Wywołaj tę metodę, aby zwolnić blok pamięci przydzielony przez tego menedżera pamięci.

virtual void Free(void* p) throw();

Parametry

p
Wskaźnik do pamięci przydzielonej wcześniej przez tego menedżera pamięci. Wartość NULL jest prawidłową wartością i nic nie robi.

Uwagi

Zaimplementowano przy użyciu platformy GlobalFree.

CGlobalHeap::GetSize

Wywołaj tę metodę, aby uzyskać przydzielony rozmiar bloku pamięci przydzielonego przez tego menedżera pamięci.

virtual size_t GetSize(void* p) throw();

Parametry

p
Wskaźnik do pamięci przydzielonej wcześniej przez tego menedżera pamięci.

Wartość zwracana

Zwraca rozmiar przydzielonego bloku pamięci w bajtach.

Uwagi

Zaimplementowano przy użyciu elementu GlobalSize.

CGlobalHeap::Reallocate

Wywołaj tę metodę, aby ponownie przydzielić pamięć przydzieloną przez tego menedżera pamięci.

virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();

Parametry

p
Wskaźnik do pamięci przydzielonej wcześniej przez tego menedżera pamięci.

nBajty
Żądana liczba bajtów w nowym bloku pamięci.

Wartość zwracana

Zwraca wskaźnik na początek nowo przydzielonego bloku pamięci.

Uwagi

Wywołaj metodę CGlobalHeap::Free , aby zwolnić pamięć przydzieloną przez tę metodę.

Zaimplementowano przy użyciu metody GlobalReAlloc.

Zobacz też

Omówienie klasy
Klasa CComHeap
Klasa CWin32Heap
Klasa CLocalHeap
Klasa CCRTHeap
Klasa IAtlMemMgr