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
バリアント) の定義済みの typedef を使用します。
nMinLength
文字バッファーの最小長。
dwFlags
文字列の長さが自動的に決定されるかどうかを指定します。 以下のいずれかを指定できます。
AUTO_LENGTH 文字列の長さは、CSimpleStringT::Release が呼び出された場合に自動的に決定されます。 文字列は null で終わる必要があります。 既定値です。
SET_LENGTH 文字列の長さは、CSimpleStringT::GetBuffer が呼び出された場合に自動的に決定されます。
解説
関連付けられた文字列オブジェクトの文字列バッファーを作成します。 構築時、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
文字列オブジェクトの文字バッファーの新しい長さ。
Note
CStrBufT
のコンストラクターで指定された最小バッファー長以下である必要があります。
解説
バッファー オブジェクトによって表される文字列の長さを設定するには、この関数を呼び出します。
CStrBufT::StringType
このクラス テンプレートの特殊化によってバッファーを操作する文字列型。
typedef CSimpleStringT<TCharType> StringType;
解説
TCharType
は、クラス テンプレートを特殊化するために使用される文字型です。