CLocalHeap 类
此类使用 Win32 本地堆函数实现 IAtlMemMgr。
重要
无法在 Windows 运行时中执行的应用程序中使用此类及其成员。
语法
class CLocalHeap : public IAtlMemMgr
成员
公共方法
名称 | 描述 |
---|---|
CLocalHeap::Allocate | 调用此方法来分配内存块。 |
CLocalHeap::Free | 调用此方法以释放由该内存管理器分配的内存。 |
CLocalHeap::GetSize | 调用此方法以获取此内存管理器分配的内存块的分配大小。 |
CLocalHeap::Reallocate | 调用此方法以重新分配由该内存管理器分配的内存。 |
备注
CLocalHeap
使用 Win32 本地堆函数实现内存分配函数。
注意
本地堆函数比其他内存管理函数慢,并且未提供那么多功能。 因此,新的应用程序应使用堆函数。 CWin32Heap 类中提供了这些函数。
示例
请参阅 IAtlMemMgr 的示例。
继承层次结构
IAtlMemMgr
CLocalHeap
要求
标头:atlmem.h
CLocalHeap::Allocate
调用此方法来分配内存块。
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
参数
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
备注
调用 CLocalHeap::Free 或 CLocalHeap::Reallocate 来释放由此方法分配的内存。
使用带 LMEM_FIXED 标志参数的 LocalAlloc 实现。
CLocalHeap::Free
调用此方法以释放由该内存管理器分配的内存。
virtual void Free(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。 NULL 是有效值,不执行任何操作。
备注
使用 LocalFree 实现。
CLocalHeap::GetSize
调用此方法以获取此内存管理器分配的内存块的分配大小。
virtual size_t GetSize(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
返回值
返回分配的内存块的大小(以字节为单位)。
注解
使用 LocalSize 实现。
CLocalHeap::Reallocate
调用此方法以重新分配由该内存管理器分配的内存。
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
注解
调用 CLocalHeap::Free 来释放由此方法分配的内存。
使用 LocalReAlloc 实现。
另请参阅
类概述
CComHeap 类
CWin32Heap 类
CGlobalHeap 类
CCRTHeap 类
IAtlMemMgr 类