IAtlStringMgr 类

此类表示 CStringT 内存管理器的接口。

语法

__interface IAtlStringMgr

成员

方法

名称 描述
Allocate 调用此方法可分配新的字符串数据结构。
克隆 调用此方法可返回指向与 CSimpleStringT 的另一个实例一起使用的新字符串管理器的指针。
免费 调用此方法可释放字符串数据结构。
GetNilString 返回指向空字符串对象所使用的 CStringData 对象的指针。
Reallocate 调用此方法可重新分配字符串数据结构。

注解

此接口管理与 MFC 无关的字符串类使用的内存;例如 CSimpleStringTCStringTCFixedStringT

还可以使用此类为自定义字符串类实现自定义内存管理器。 有关详细信息,请参阅内存管理和 CStringT

要求

标头:atlsimpstr.h

IAtlStringMgr::Allocate

分配新的字符串数据结构。

CStringData* Allocate(int nAllocLength,int nCharSize) throw();

参数

nAllocLength
新内存块中的字符数。

nCharSize
字符串管理器使用的字符类型的大小(以字节为单位)。

返回值

将指针返回到新分配的内存块。

注意

不要通过引发异常发出失败分配信号。 相反,失败的分配应通过返回 NULL 发出信号。

备注

调用 IAtlStringMgr::FreeIAtlStringMgr::ReAllocate 可释放由此方法分配的内存。

注意

有关使用示例,请参阅内存管理和 CStringT

IAtlStringMgr::Clone

返回指向与 CSimpleStringT 的另一个实例一起使用的新字符串管理器的指针。

IAtlStringMgr* Clone() throw();

返回值

返回 IAtlStringMgr 对象的副本。

注解

当新字符串需要字符串管理器时,通常由框架调用。 在大多数情况下,返回 this 指针。

但是,如果内存管理器不支持由 CSimpleStringT 的多个实例使用,则应返回指向可共享字符串管理器的指针。

注意

有关使用示例,请参阅内存管理和 CStringT

IAtlStringMgr::Free

释放字符串数据结构。

void Free(CStringData* pData) throw();

参数

pData
指向要释放的内存的指针。

注解

释放以前由 AllocateReallocate 分配的指定内存块。

注意

有关使用示例,请参阅内存管理和 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

另请参阅

层次结构图
ATL/MFC 共享类