Класс CCRTHeapCGlobalHeap Class

Этот класс реализует иатлмеммгр с помощью глобальных функций кучи Win32.This class implements IAtlMemMgr using the Win32 global heap functions.

Важно!

Этот класс и его члены не могут использоваться в приложениях, выполняемых в среда выполнения Windows.This class and its members cannot be used in applications that execute in the Windows Runtime.

СинтаксисSyntax

class CGlobalHeap : public IAtlMemMgr

ЧленыMembers

Открытые методыPublic Methods

nameName ОписаниеDescription
CCRTHeap:: allocateCGlobalHeap::Allocate Вызовите этот метод, чтобы выделить блок памяти.Call this method to allocate a block of memory.
CCRTHeap:: FreeCGlobalHeap::Free Вызовите этот метод, чтобы освободить блок памяти, выделенный этим диспетчером памяти.Call this method to free a block of memory allocated by this memory manager.
CCRTHeap:: DataSizeCGlobalHeap::GetSize Вызовите этот метод, чтобы получить выделенный размер блока памяти, выделенного этим диспетчером памяти.Call this method to get the allocated size of a memory block allocated by this memory manager.
CCRTHeap:: перераспределениеCGlobalHeap::Reallocate Вызовите этот метод для перераспределения памяти, выделенной данным диспетчером памяти.Call this method to reallocate memory allocated by this memory manager.

КомментарииRemarks

CGlobalHeap реализует функции выделения памяти с помощью глобальных функций кучи Win32.CGlobalHeap implements memory allocation functions using the Win32 global heap functions.

Примечание

Глобальные функции кучи выполняются медленнее, чем другие функции управления памятью, и не предоставляют столько функций.The global heap functions are slower than other memory management functions and do not provide as many features. Поэтому новые приложения должны использовать функции кучи.Therefore, new applications should use the heap functions. Они доступны в классе CWin32Heap .These are available in the CWin32Heap class. Глобальные функции по-прежнему используются в DDE и функциях буфера обмена.Global functions are still used by DDE and the clipboard functions.

ПримерExample

См. пример для иатлмеммгр.See the example for IAtlMemMgr.

Иерархия наследованияInheritance Hierarchy

IAtlMemMgr

CGlobalHeap

ТребованияRequirements

Заголовок: атлмем. hHeader: atlmem.h

CCRTHeap:: allocateCGlobalHeap::Allocate

Вызовите этот метод, чтобы выделить блок памяти.Call this method to allocate a block of memory.

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

ПараметрыParameters

nBytesnBytes
Запрошенное число байтов в новом блоке памяти.The requested number of bytes in the new memory block.

Возвращаемое значениеReturn Value

Возвращает указатель на начало выделенного блока памяти.Returns a pointer to the start of the newly allocated memory block.

КомментарииRemarks

Вызовите метод CCRTHeap:: Free или CCRTHeap:: reallocate , чтобы освободить память, выделенную этим методом.Call CGlobalHeap::Free or CGlobalHeap::Reallocate to free the memory allocated by this method.

Реализуется с помощью GlobalAlloc с параметром Flag GMEM_FIXED.Implemented using GlobalAlloc with a flag parameter of GMEM_FIXED.

CCRTHeap:: FreeCGlobalHeap::Free

Вызовите этот метод, чтобы освободить блок памяти, выделенный этим диспетчером памяти.Call this method to free a block of memory allocated by this memory manager.

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

ПараметрыParameters

pp
Указатель на область памяти, выделенную ранее данным диспетчером памяти.Pointer to memory previously allocated by this memory manager. Значение NULL является допустимым и не выполняет никаких действий.NULL is a valid value and does nothing.

КомментарииRemarks

Реализуется с помощью GlobalFree.Implemented using GlobalFree.

CCRTHeap:: DataSizeCGlobalHeap::GetSize

Вызовите этот метод, чтобы получить выделенный размер блока памяти, выделенного этим диспетчером памяти.Call this method to get the allocated size of a memory block allocated by this memory manager.

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

ПараметрыParameters

pp
Указатель на область памяти, выделенную ранее данным диспетчером памяти.Pointer to memory previously allocated by this memory manager.

Возвращаемое значениеReturn Value

Возвращает размер выделенного блока памяти в байтах.Returns the size of the allocated memory block in bytes.

КомментарииRemarks

Реализуется с помощью глобалсизе.Implemented using GlobalSize.

CCRTHeap:: перераспределениеCGlobalHeap::Reallocate

Вызовите этот метод для перераспределения памяти, выделенной данным диспетчером памяти.Call this method to reallocate memory allocated by this memory manager.

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

ПараметрыParameters

pp
Указатель на область памяти, выделенную ранее данным диспетчером памяти.Pointer to memory previously allocated by this memory manager.

nBytesnBytes
Запрошенное число байтов в новом блоке памяти.The requested number of bytes in the new memory block.

Возвращаемое значениеReturn Value

Возвращает указатель на начало выделенного блока памяти.Returns a pointer to the start of the newly allocated memory block.

КомментарииRemarks

Вызовите метод CCRTHeap:: Free , чтобы освободить память, выделенную этим методом.Call CGlobalHeap::Free to free the memory allocated by this method.

Реализуется с помощью LocalLock.Implemented using GlobalReAlloc.

См. также разделSee also

Общие сведения о классахClass Overview
Класс КкомхеапCComHeap Class
Класс CWin32HeapCWin32Heap Class
Класс CLocalHeapCLocalHeap Class
Класс КкрсеапCCRTHeap Class
Класс ИатлмеммгрIAtlMemMgr Class