CString
の使用
このセクションのトピックでは、CString
を使用したプログラミング方法について説明します。 CString
クラスのリファレンス ドキュメントについては、CStringT
に関する説明を参照してください。
CString
を使用するには、atlstr.h
ヘッダーをインクルードします。
CString
、CStringA
、および 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 終端文字を含めます。 NULL
は CString
の別の場所に挿入できますが、予期しない結果になる場合があります。
文字列クラス 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)
文字列データを管理する複数の方法について説明したトピックへのリンクが含まれています。