Visual C++ における MBCS のサポート
MBCS をサポートしている Windows 2000 オペレーティング システムまたは Windows XP オペレーティング システム上で Visual C++ 開発システムを実行すると、メモリ ウィンドウを除いて、システム内の統合ソース コード エディター、デバッガー、コマンド ライン ツールなどのすべてが MBCS をサポートします。
メモリ ウィンドウは、データのバイトを ANSI 文字や Unicode 文字として解釈できる場合でも、MBCS 文字として解釈しません。ANSI 文字のサイズは常に 1 バイトで、Unicode 文字のサイズは 2 バイトです。MBCS の場合、文字のサイズは 1 バイトにも 2 バイトにもなるため、使用中のコード ページに応じて解釈が異なります。このため、メモリ ウィンドウで MBCS 文字を確実に表示することは困難です。メモリ ウィンドウは、文字の先頭のバイトを認識できません。 開発者は、メモリ ウィンドウのバイト値を参照し、その値をテーブルで検索して文字表現を判断できます。 これは、開発者がソース コードに基づいて文字列の開始アドレスを理解しているためです。
Visual C++ では、該当する部分で 2 バイト文字を入力できます。 つまり、ダイアログ ボックスではパス名およびファイル名に、Visual C++ リソース エディターではテキスト入力に、2 バイト文字を使用できます。たとえば、ダイアログ エディターでは静的テキストとして、アイコン エディターでは静的テキストとして入力できます。 また、プリプロセッサも一部の 2 バイト ディレクティブを認識するようになります。たとえば、#include ステートメントのファイル名、code_seg プラグマおよび data_seg プラグマの as 引数などを認識します。 ソース コード エディターでは、コメントおよびリテラル文字列に 2 バイト文字を使用できますが、C/C++ 言語の要素 (変数名など) には使用できません。
IME (Input Method Editor) のサポート
MBCS を使用する日本などの東アジア市場向けに記述されたアプリケーションでは、通常、Windows IME をサポートして、1 バイト文字と 2 バイト文字の両方を入力できるようにしています。 Visual C++ の開発環境では、IME を全面的にサポートしています。 詳細については、「IME サンプル : IME モードの制御方法と IME レベル 3 の実装方法」を参照してください。
日本語のキーボードは、漢字を直接サポートしていません。 日本語のアルファベット (ローマ字、カタカナ、またはひらがな) のいずれかで入力された音節文字列は、IME によって該当する漢字表記に変換されます。 あいまいなときは、いくつかの選択肢から選択できます。 目的の漢字を選択すると、IME は 2 つの WM_CHAR メッセージを制御アプリケーションに渡します。
IME は Alt + ` キーでアクティブにします。アクティブになると、一連のボタン (インジケーター) と変換ウィンドウが表示されます。 アプリケーションでは、このウィンドウをテキスト挿入位置に移動します。 つまり、WM_MOVE メッセージと WM_SIZE メッセージの処理として、変換ウィンドウを新しい位置に再配置するか、ターゲット ウィンドウのサイズに合わせる必要があります。
アプリケーションのユーザーが漢字入力できるようにするには、アプリケーションで Windows IME メッセージを処理する必要があります。 IME プログラミングの詳細については、「Input Method Editor」を参照してください。
Visual C++ デバッガー
Visual C++ デバッガーでは、IME メッセージにブレークポイントを設定できます。 メモリ ウィンドウに 2 バイト文字を表示させることもできます。
コマンド ライン ツール
Visual C++ のコマンド ライン ツールには、コンパイラ、NMAKE、リソース コンパイラ (RC.EXE) などがありますが、すべて MBCS をサポートしています。 アプリケーションのリソースをコンパイルするときにリソース コンパイラの /c オプションを使うと、既定のコード ページを変更できます。
ソース コードのコンパイル時に既定のロケールを変更するには、#pragma setlocale を使います。
グラフィカル ツール
Spy++ やリソース編集ツールなどの Visual C++ Windows ベースのツールは、IME 文字列を全面的にサポートしています。