コンパイラおよびリンカーでの Unicode のサポート

このトピックでは、Visual C++ ビルド ツールでの Unicode のサポートについて説明します。

  • ファイル名
    コマンド ライン、およびコンパイラ ディレクティブ (#include など) で指定されるファイル名に、Unicode 文字を含めることができるようになりました。 以前のバージョンの Visual C++ では、ANSI ファイル名だけがサポートされていました。 実行可能ファイルを Windows 98 および Windows Me のローカライズ バージョンで実行できるように、出力ファイル名には非 ASCII 文字を使用しないでください。

  • ソース コード ファイル
    識別子、マクロ、文字列リテラル、文字リテラル、およびコメントで、Unicode 文字がサポートされるようになりました。 また、ユニバーサル文字名もサポートされるようになりました。

    Unicode は、次のエンコーディングのソース コード ファイルに入力できます。

    • BOM (Byte Order Mark) 付き、または BOM なしの UTF-16 リトル エンディアン。

    • BOM 付き、または BOM なしの UTF-16 ビッグ エンディアン。

    • BOM 付きの UTF-8

  • 出力
    コンパイル時に、コンパイラは UTF-16 で診断をコンソールに出力します。 コンソールに表示できる文字は、コンソール ウィンドウのプロパティによって決まります ファイルにリダイレクトされるコンパイラ出力は、現在の ANSI コンソール コードページになります。

  • リンカー応答ファイルおよび .DEF ファイル
    応答ファイルおよび DEF ファイルは、BOM 付きの UTF-16、または ANSI にできます。 以前は ANSI だけがサポートされていました。

  • .asm ダンプおよび .cod ダンプ
    .asm ダンプおよび .cod ダンプは、MASM との互換性のために、既定で ANSI になっています。 UTF-8 を出力するには /FAu を使用します。 /FAs を指定した場合、混在したソースが直接出力されるため、文字が正しく表示されない可能性があります。たとえば、ソース コードが UTF-8 の場合に /FAsu を指定しなかった場合などがこれにあたります。

開発環境で Unicode ファイル名を有効にするには (「方法 : プロジェクト プロパティ ページを開く」を参照)、適切なツールを選択するか、既定で有効になっている [UNICODE 応答ファイルの使用] プロパティを選択します。 この既定値を変更するのは、Unicode をサポートしていないコンパイラを使用するように開発環境を変更する場合などです。

参照

その他の技術情報

コマンド ラインでのビルド