CStrBufT 类
此类为现有 CStringT
对象提供自动资源清理以便调用 GetBuffer
和 ReleaseBuffer
。
语法
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 时间设置字符串对象的长度 |
备注
此类用作包装类,用于替换对 GetBuffer 和 ReleaseBuffer,或 GetBufferSetLength 和 ReleaseBuffer
的调用。
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 变体)、CStrBufA
(char
变体)和 CStrBufW
(wchar_t
变体)的预定义 typedefs。
nMinLength
字符缓冲区的最小长度。
dwFlags
确定字符串长度是否自动确定。 可以是以下值之一:
在调用 CSimpleStringT::Release 时,会自动确定 AUTO_LENGTH 字符串长度。 字符串必须以 null 结尾。 默认值。
调用 CSimpleStringT::GetBuffer 时,会设置 SET_LENGTH 字符串长度。
备注
为关联的字符串对象创建字符串缓冲区。 在构造过程中,调用 CSimpleStringT::GetBuffer 或 CSimpleStringT::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::GetBuffer 和 CSimpleStringT::GetBufferSetLength。
CStrBufT::SetLength
设置字符缓冲区的长度。
void SetLength(int nLength);
参数
nLength
字符串对象的字符缓冲区的新长度。
注意
必须小于或等于 CStrBufT
构造函数中指定的最小缓冲区长度。
备注
调用此函数以设置缓冲区对象表示的字符串长度。
CStrBufT::StringType
该字符串类型的缓冲区由此类模板的专用化操作。
typedef CSimpleStringT<TCharType> StringType;
备注
TCharType
是用于专用化类模板的字符类型。