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::Free 或 CGlobalHeap::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 类