CGlobalHeap 类

此类使用 Win32 全局堆函数实现 IAtlMemMgr

重要

无法在 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::FreeCGlobalHeap::Reallocate 来释放由此方法分配的内存。

使用带 GMEM_FIXED 的标记参数的 GlobalAlloc 实现。

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 类