次の方法で共有


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 バリアント)、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::GetBufferCSimpleStringT::GetBufferSetLength が呼び出されるかどうかを決定します。

CStrBufT::SetLength

文字バッファーの長さを設定します。

void SetLength(int nLength);

パラメーター

nLength
文字列オブジェクトの文字バッファーの新しい長さ。

Note

CStrBufT のコンストラクターで指定された最小バッファー長以下である必要があります。

解説

バッファー オブジェクトによって表される文字列の長さを設定するには、この関数を呼び出します。

CStrBufT::StringType

このクラス テンプレートの特殊化によってバッファーを操作する文字列型。

typedef CSimpleStringT<TCharType> StringType;

解説

TCharType は、クラス テンプレートを特殊化するために使用される文字型です。

関連項目

階層図
ATL/MFC 共有クラス