IAtlStringMgr 类
此类表示 CStringT
内存管理器的接口。
语法
__interface IAtlStringMgr
成员
方法
名称 | 描述 |
---|---|
Allocate | 调用此方法可分配新的字符串数据结构。 |
克隆 | 调用此方法可返回指向与 CSimpleStringT 的另一个实例一起使用的新字符串管理器的指针。 |
免费 | 调用此方法可释放字符串数据结构。 |
GetNilString | 返回指向空字符串对象所使用的 CStringData 对象的指针。 |
Reallocate | 调用此方法可重新分配字符串数据结构。 |
注解
此接口管理与 MFC 无关的字符串类使用的内存;例如 CSimpleStringT、CStringT 和 CFixedStringT。
还可以使用此类为自定义字符串类实现自定义内存管理器。 有关详细信息,请参阅内存管理和 CStringT。
要求
标头:atlsimpstr.h
IAtlStringMgr::Allocate
分配新的字符串数据结构。
CStringData* Allocate(int nAllocLength,int nCharSize) throw();
参数
nAllocLength
新内存块中的字符数。
nCharSize
字符串管理器使用的字符类型的大小(以字节为单位)。
返回值
将指针返回到新分配的内存块。
注意
不要通过引发异常发出失败分配信号。 相反,失败的分配应通过返回 NULL 发出信号。
备注
调用 IAtlStringMgr::Free 或 IAtlStringMgr::ReAllocate 可释放由此方法分配的内存。
注意
有关使用示例,请参阅内存管理和 CStringT。
IAtlStringMgr::Clone
返回指向与 CSimpleStringT
的另一个实例一起使用的新字符串管理器的指针。
IAtlStringMgr* Clone() throw();
返回值
返回 IAtlStringMgr
对象的副本。
注解
当新字符串需要字符串管理器时,通常由框架调用。 在大多数情况下,返回 this
指针。
但是,如果内存管理器不支持由 CSimpleStringT
的多个实例使用,则应返回指向可共享字符串管理器的指针。
注意
有关使用示例,请参阅内存管理和 CStringT。
IAtlStringMgr::Free
释放字符串数据结构。
void Free(CStringData* pData) throw();
参数
pData
指向要释放的内存的指针。
注解
释放以前由 Allocate 或 Reallocate 分配的指定内存块。
注意
有关使用示例,请参阅内存管理和 CStringT。
IAtlStringMgr::GetNilString
返回指向空字符串的字符串数据结构的指针。
CStringData* GetNilString() throw();
返回值
指向用于表示空字符串的 CStringData
对象的指针。
备注
调用此函数可返回空字符串的表示形式。
注意
实现自定义字符串管理器时,此函数绝不能失败。 可以通过将字符串管理器类的 CNilStringData
实例嵌入来确保这一点,同时返回指向此实例的指针。
注意
有关使用示例,请参阅内存管理和 CStringT。
IAtlStringMgr::Reallocate
重新分配字符串数据结构。
CStringData* Reallocate(
CStringData* pData,
int nAllocLength,
int nCharSize) throw();
参数
pData
指向此内存管理器以前分配的内存的指针。
nAllocLength
新内存块中的字符数。
nCharSize
字符串管理器使用的字符类型的大小(以字节为单位)。
返回值
将指针返回到新分配内存块的起始位置。
备注
调用此函数可调整 pData 指定的现有内存块的大小。
调用 IAtlStringMgr::Free 可释放由此方法分配的内存。
注意
有关使用示例,请参阅内存管理和 CStringT。