CComHeap
类
此类使用 COM 内存分配函数实现 IAtlMemMgr
。
重要
无法在 Windows 运行时中执行的应用程序中使用此类及其成员。
语法
class CComHeap : public IAtlMemMgr
成员
公共方法
名称 | 描述 |
---|---|
CComHeap::Allocate |
调用此方法来分配内存块。 |
CComHeap::Free |
调用此方法以释放由该内存管理器分配的内存。 |
CComHeap::GetSize |
调用此方法以获取此内存管理器分配的内存块的分配大小。 |
CComHeap::Reallocate |
调用此方法以重新分配由该内存管理器分配的内存。 |
备注
CComHeap
使用 COM 分配函数(包括CoTaskMemAlloc
、CoTaskMemFree
、IMalloc::GetSize
和 CoTaskMemRealloc
)实现内存分配函数。 可分配的最大内存量等于 INT_MAX
(2147483647) 字节。
示例
请参阅 IAtlMemMgr
的示例。
继承层次结构
IAtlMemMgr
CComHeap
要求
标头:ATLComMem.h
CComHeap::Allocate
调用此方法来分配内存块。
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
参数
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
注解
调用 CComHeap::Free
或 CComHeap::Reallocate
可释放由此方法分配的内存。
使用 CoTaskMemAlloc
实现。
CComHeap::Free
调用此方法以释放由该内存管理器分配的内存。
virtual void Free(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。 NULL 是有效值,不执行任何操作。
备注
使用 CoTaskMemFree
实现。
CComHeap::GetSize
调用此方法以获取此内存管理器分配的内存块的分配大小。
virtual size_t GetSize(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
返回值
返回分配的内存块的大小(以字节为单位)。
备注
使用 IMalloc::GetSize
实现。
CComHeap::Reallocate
调用此方法以重新分配由该内存管理器分配的内存。
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
备注
调用 CComHeap::Free
可释放由此方法分配的内存。
使用 CoTaskMemRealloc
实现。
另请参阅
DynamicConsumer 示例
类概述
CWin32Heap
类
CLocalHeap
类
CGlobalHeap
类
CCRTHeap
类
IAtlMemMgr
类