CString の使用
このセクションのトピックでは、CString を使用したプログラミング方法について説明します。 CString クラスのリファレンス ドキュメントについては、CStringT のドキュメントを参照してください。
CString を使用するには、atlstr.h ヘッダーをインクルードします。
CString、CStringA、および CStringW クラスは、CStringT と呼ばれるクラス テンプレートを、それぞれがサポートしている文字データ型に基づいて特化させたものです。
CStringW オブジェクトには wchar_t 型が格納され、Unicode 文字列がサポートされます。 CStringA オブジェクトには char 型が格納され、1 バイト文字列とマルチバイト (MBCS) 文字列がサポートされます。 CString オブジェクトでは、コンパイル時に MBCS シンボルと UNICODE シンボルのどちらが定義されているかに従って、char 型または wchar_t 型のいずれかがサポートされます。
CString オブジェクトは、CStringData オブジェクトの文字データを保持します。 CString は null で終わる C スタイルの文字列を受け入れますが、格納されている文字データでは null 文字は保持されません。 代わりに、CString は文字列の長さを追跡します。 CString は、C スタイルの文字列をエクスポートするときに null 終端文字を付与します。 CString に null を挿入できますが、予期しない結果になる場合があります。
文字列クラス CAtlString、CAtlStringA、および CAtlStringW は、CRT サポートがある場合もない場合も、MFC ライブラリにリンクせずに使用できます。
CString は、ネイティブ プロジェクトで使用されます。 マネージ コード (C++/CLI) プロジェクトの場合は、System::String を使用します。
CString、CStringA、または 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)
文字列データを管理する複数の方法について説明したトピックへのリンクが含まれています。クラス テンプレートのインスタンス化
CString は CStringT に基づいた typedef で、クラス テンプレートを特化したインスタンスです。