Поделиться через


Класс 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