CStrBufT 类

此类为现有 CStringT 对象提供自动资源清理以便调用 GetBufferReleaseBuffer

语法

template<typename TCharType>
class CStrBufT

参数

TCharType
CStrBufT 类的字符类型。 可以是以下值之一:

  • char(适用于 ANSI 字符串)

  • wchar_t(适用于 Unicode 字符串)

  • TCHAR(适用于 ANSI 和 Unicode 字符串)

成员

公共 Typedef

名称 描述
PCXSTR 指向常量字符串的指针。
PXSTR 指向字符串的指针。
StringType 该字符串类型的缓冲区由此类模板的专用化操作。

公共构造函数

名称 描述
CStrBufT::CStrBufT 字符串缓冲区对象的构造函数。

公共方法

名称 描述
CStrBufT::SetLength 设置关联字符串对象的字符缓冲区长度。

公共运算符

“属性” 描述
CStrBufT::operator PCXSTR 检索指向关联字符串对象的字符缓冲区的 const 指针。
CStrBufT::operator PXSTR 检索指向关联字符串对象的字符缓冲区的指针。

公共常量

“属性” 描述
CStrBufT::AUTO_LENGTH 在发布时自动确定字符串的新长度。
CStrBufT::SET_LENGTH 在 GetBuffer 时间设置字符串对象的长度

备注

此类用作包装类,用于替换对 GetBufferReleaseBuffer,或 GetBufferSetLengthReleaseBuffer 的调用。

CStrBufT 主要设计为帮助程序类,为开发人员提供了一种简便方法,用于处理字符串对象的字符缓冲区,而无需担心调用 ReleaseBuffer 的方式或时间。 这是可能实现的,因为包装器对象在出现异常或多个退出代码路径的情况下自然会超出范围;导致其析构函数释放字符串资源。

要求

标头:atlsimpstr.h

CStrBufT::AUTO_LENGTH

在发布时自动确定字符串的新长度。

static const DWORD AUTO_LENGTH = 0x01;

注解

在发布时自动确定字符串的新长度。 字符串必须以 null 结尾。

CStrBufT::CStrBufT

构造缓冲区对象。

CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);

参数

str
与缓冲区关联的字符串对象。 通常,开发人员会使用 CStrBuf(TCHAR 变体)、CStrBufAchar 变体)和 CStrBufWwchar_t 变体)的预定义 typedefs。

nMinLength
字符缓冲区的最小长度。

dwFlags
确定字符串长度是否自动确定。 可以是以下值之一:

备注

为关联的字符串对象创建字符串缓冲区。 在构造过程中,调用 CSimpleStringT::GetBufferCSimpleStringT::GetBufferSetLength

请注意,复制构造函数为 private.

CStrBufT::operator PCXSTR

直接访问作为 C 样式字符串存储在关联字符串对象中的字符。

operator PCXSTR() const throw();

返回值

指向字符串数据的字符指针。

注解

调用此函数可返回指向字符串对象的字符缓冲区的指针。 不能使用此指针更改字符串对象的内容。

CStrBufT::operator PXSTR

直接访问作为 C 样式字符串存储在关联字符串对象中的字符。

operator PXSTR() throw();

返回值

指向字符串数据的字符指针。

注解

调用此函数可返回指向字符串对象的字符缓冲区的指针。 开发人员可以使用此指针更改字符串对象的内容。

CStrBufT::PCXSTR

指向常量字符串的指针。

typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;

CStrBufT::PXSTR

指向字符串的指针。

typedef CSimpleStringT<TCharType>::PXSTR PXSTR;

CStrBufT::SET_LENGTH

GetBuffer 时间设置字符串对象的长度。

static const DWORD SET_LENGTH = 0x02;

注解

在 GetBuffer 时间设置字符串对象的长度。

确定构造字符串缓冲区对象时是否调用 CSimpleStringT::GetBufferCSimpleStringT::GetBufferSetLength

CStrBufT::SetLength

设置字符缓冲区的长度。

void SetLength(int nLength);

参数

nLength
字符串对象的字符缓冲区的新长度。

注意

必须小于或等于 CStrBufT 构造函数中指定的最小缓冲区长度。

备注

调用此函数以设置缓冲区对象表示的字符串长度。

CStrBufT::StringType

该字符串类型的缓冲区由此类模板的专用化操作。

typedef CSimpleStringT<TCharType> StringType;

备注

TCharType 是用于专用化类模板的字符类型。

另请参阅

层次结构图
ATL/MFC 共享类