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