Класс CGlobalHeap
Этот класс реализует IAtlMemMgr с помощью функций глобальной кучи Win32.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class CGlobalHeap : public IAtlMemMgr
Участники
Открытые методы
Имя | Описание |
---|---|
CGlobalHeap::Allocate | Вызовите этот метод, чтобы выделить блок памяти. |
CGlobalHeap::Free | Вызовите этот метод, чтобы освободить блок памяти, выделенный этим диспетчером памяти. |
CGlobalHeap::GetSize | Вызовите этот метод, чтобы получить выделенный размер блока памяти, выделенного этим диспетчером памяти. |
CGlobalHeap::Reallocate | Вызовите этот метод для перераспределения памяти, выделенной данным диспетчером памяти. |
Замечания
CGlobalHeap
реализует функции выделения памяти с помощью глобальных функций кучи Win32.
Примечание.
Глобальные функции кучи медленнее других функций управления памятью и не предоставляют столько функций. Поэтому новые приложения должны использовать функции кучи. Они доступны в классе CWin32Heap . Глобальные функции по-прежнему используются DDE и функциями буфера обмена.
Пример
См. пример для IAtlMemMgr.
Иерархия наследования
IAtlMemMgr
CGlobalHeap
Требования
Заголовок: atlmem.h
CGlobalHeap::Allocate
Вызовите этот метод, чтобы выделить блок памяти.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Параметры
nBytes
Запрошенное число байтов в новом блоке памяти.
Возвращаемое значение
Возвращает указатель на начало выделенного блока памяти.
Замечания
Вызовите CGlobalHeap::Free или CGlobalHeap::Reallocate , чтобы освободить память, выделенную этим методом.
Реализовано с помощью GlobalAlloc с параметром флага GMEM_FIXED.
CGlobalHeap::Free
Вызовите этот метод, чтобы освободить блок памяти, выделенный этим диспетчером памяти.
virtual void Free(void* p) throw();
Параметры
p
Указатель на область памяти, выделенную ранее данным диспетчером памяти. NULL является допустимым значением и ничего не делает.
Замечания
Реализовано с помощью GlobalFree.
CGlobalHeap::GetSize
Вызовите этот метод, чтобы получить выделенный размер блока памяти, выделенного этим диспетчером памяти.
virtual size_t GetSize(void* p) throw();
Параметры
p
Указатель на область памяти, выделенную ранее данным диспетчером памяти.
Возвращаемое значение
Возвращает размер выделенного блока памяти в байтах.
Замечания
Реализовано с помощью GlobalSize.
CGlobalHeap::Reallocate
Вызовите этот метод для перераспределения памяти, выделенной данным диспетчером памяти.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Параметры
p
Указатель на область памяти, выделенную ранее данным диспетчером памяти.
nBytes
Запрошенное число байтов в новом блоке памяти.
Возвращаемое значение
Возвращает указатель на начало выделенного блока памяти.
Замечания
Вызовите CGlobalHeap::Free , чтобы освободить память, выделенную этим методом.
Реализовано с помощью GlobalReAlloc.
См. также
Общие сведения о классе
Класс CComHeap
Класс CWin32Heap
Класс CLocalHeap
Класс CCRTHeap
Класс IAtlMemMgr