次の方法で共有


CString の使用

このセクションのトピックでは、CString を使用してプログラミングする方法について説明します。

CStringCStringACStringW は、C++ での一般的な開発に使用できる Microsoft 固有の文字列クラスです。

CStringA オブジェクトは char 型に基づいた文字列データを格納するほか、1 バイト文字列およびマルチバイト (MBCS) 文字列をサポートします。同様に、CStringW オブジェクトは wchar_t 型に基づいた文字列データを格納するほか、Unicode 文字列をサポートします。CString オブジェクトは、char 型と wchar_t 型のいずれかをサポートします。どちらをサポートするかは、コンパイル時に MBCSUNICODE のどちらのシンボルが定義されたかによって決まります。

CString オブジェクトは、CStringData オブジェクトで文字データを保持します。CString は、null で終わる C スタイルの文字列を受け取りますが、格納される文字データでは null 文字が保持されません。その代わり、CString は文字列長を追跡します。CString が null 終端文字を付与するのは、C スタイルの文字列をエクスポートするときです。格納される文字データの中間に null 文字を挿入することはできますが、予期しない結果が生じることがあります。

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

CStringCStringACStringWatlstr.h で定義され、MFC90.dll からエクスポートされます。CStringTcstringt.h で定義されます。CAtlStringCAtlStringACAtlStringW の文字列クラスのセットは、MFC ライブラリにリンクせずに、CRT サポート付きまたは CRT サポートなしで使用できます。

CStringCStringACStringW の各クラスは、CStringT というクラス テンプレートのインスタンスです。これらのクラスには、"特化" というテンプレート プログラミング技法が利用されています。各クラスは、自身がサポートする文字データの型に応じてテンプレート クラス CStringT を特化することによって typedef として実装されます。これらのクラスは、独自のメソッドを定義できません。代わりに、自身が格納する文字データの操作に特化された CStringT で定義されたメソッドを利用します。

CStringCStringACStringW の現在の機能を強化するには、追加機能のある CStringT のサブクラスを作成することを検討してください。この場合、CString に類似するが、CStringT のサブクラスに基づいたインスタンスを作成します。

このセクションの内容

関連項目

関連項目

文字列 (ATL/MFC)