国際化のアプローチ
国際市場を視野に入れた場合、ターゲットとするオペレーティング システムと市場に応じて、さまざまなアプローチが考えられます。
Unicode を採用し、オーバーヘッドなしに Windows 2000 と Windows NT 上で実行できるようにする。この場合、Windows 95 や Windows 98 では実行できません。
Unicode 固有の機能を使用し、文字はすべて 16 ビット幅とします。目的に応じてプログラムの一部に ANSI 文字を使用してもかまいません。 C のランタイム ライブラリには、Unicode だけを使ったプログラミングに適した関数、マクロ、およびデータ型が用意されています。 MFC は、Unicode を完全にサポートしています。
MBCS を採用し、すべての Win32 プラットフォームで動作できるようにする。
MBCS 固有の機能を使用します。 文字列は、1 バイト文字だけでも、2 バイト文字だけでも構成できます。また、両方を混在させることもできます。 C のランタイム ライブラリには、MBCS だけを使ったプログラミングに適した関数、マクロ、およびデータ型が用意されています。 MFC は、MBCS を完全にサポートしています。
_UNICODE シンボルまたは _MBCS シンボルを定義して再コンパイルすることにより、アプリケーションのソース コードの移植性を高める。いずれのシンボルを使用するアプリケーションも作成できます。 詳細については、「Tchar.h における汎用テキストのマッピング」を参照してください。
「Design a Single Unicode App that Runs on Both Windows 98 and Windows 2000」で説明したように、Windows 95、Windows 98、および Windows ME にはない Unicode 関数のラッパー ライブラリをアプリケーションで使用する。 ラッパー ライブラリは購入することもできます。
完全に移植性のある C のランタイム関数や、マクロ、データ型を使います。 MFC は柔軟性に富み、これらを問題なくサポートします。
残りのトピックでは、Unicode または MBCS としてビルドできる完全に移植可能なコードの記述について重点的に説明します。