CString の使用

このセクションのトピックでは、CString を使用したプログラミング方法について説明します。 CString クラスのリファレンス ドキュメントについては、CStringT に関する説明を参照してください。

CString を使用するには、atlstr.h ヘッダーをインクルードします。

CStringCStringA、および CStringW クラスは、CStringT と呼ばれるクラス テンプレートを、それぞれがサポートしている文字データ型に基づいて特化させたものです。

CStringW オブジェクトには wchar_t 型が格納され、Unicode 文字列をサポートします。 CStringA オブジェクトには char 型が格納され、1 バイト文字列とマルチバイト (MBCS) 文字列をサポートします。 コンパイル時に MBCS シンボルまたは UNICODE シンボルを定義したかにより、CString オブジェクトは char 型または wchar_t 型をサポートします。

CString オブジェクトは、CStringData オブジェクトの文字データを保持します。 CString は、NULL で終了する C スタイルの文字列を受け取ります。 CString は、パフォーマンスを向上するために文字列の長さを追跡しますが、NULL への変換をサポートするために、格納されている文字データ内の LPCWSTR 文字も保持します。 CString は、C スタイルの文字列をエクスポートするときに null 終端文字を含めます。 NULLCString の別の場所に挿入できますが、予期しない結果になる場合があります。

文字列クラス CAtlStringCAtlStringA、および CAtlStringW は、CRT サポートがある場合もない場合も、MFC ライブラリにリンクせずに使用できます。

CString は、ネイティブ プロジェクトで使用されます。 マネージ コード (C++/CLI) プロジェクトの場合は、System::String を使用します。

CStringCStringA、または CStringW で現在提供されているよりも多くの機能を追加するには、追加機能を含む CStringT のサブクラスを作成する必要があります。

次のコードは、CString を作成して標準出力に表示する方法を示しています。

#include <atlstr.h>

int main() {
    CString aCString = CString(_T("A string"));
    _tprintf(_T("%s"), (LPCTSTR) aCString);
}

このセクションの内容

CString の基本操作
C リテラル文字列からのオブジェクトの作成、CString 内の個々の文字へのアクセス、2 つのオブジェクトの連結、CString オブジェクトの比較など、CString の基本操作について説明します。

文字列データ管理
CString での Unicode と MBCS の使用について説明します。

CString セマンティクス
CString オブジェクトの使用方法について説明します。

C スタイルの文字列に関連する CString の操作方法
C スタイルの null で終わる文字列のように CString オブジェクトの内容を操作する方法について説明します。

BSTR 用のメモリの割り当てと解放
BSTR と COM オブジェクトのメモリの使用方法について説明します。

CString の例外の後処理
MFC 3.0 以降で明示的な後処理が不要になったことについて説明します。

CString 引数の渡し方
CString オブジェクトを関数に渡す方法と、関数から CString オブジェクトを返す方法について説明します。

Unicode とマルチバイト文字セット (MBCS: Multibyte Character Set) のサポート
MFC で Unicode と MBCS をサポートできるようにする方法について説明します。

リファレンス

CStringT
CStringT クラスに関するリファレンス情報を提供します。

CSimpleStringT クラス
CSimpleStringT クラスに関するリファレンス情報を提供します。

文字列 (ATL/MFC)
文字列データを管理する複数の方法について説明したトピックへのリンクが含まれています。

文字列 (ATL/MFC)