2009-04-07 15 views
6

ビジュアルスタジオプロジェクトを作成したときに、デフォルトで文字列を受け取るすべての関数にワイド文字列を使用させました。例えばMessageBox()は、const char *ではなくLPCWSTRをとります。マルチリンガルアプリケーションやポータブルアプリケーションには優れていると私は理解していますが、私の小さなアプリではまったく必要ありません。率直に言って、常にすべての文字列にTEXT()を入力するのは苦痛です。Visual Studioプロジェクトをワイド文字列を使用して普通の文字列に変換する方法

Visual Studioプロジェクトでこれを修正するために変更できるコンパイラオプション、定義またはプロジェクト設定はありますか?

答えて

14

プロジェクトを右クリックし - >プロパティは、次のツリー項目に移動:

構成プロパティ - > [一般Unicodeの

選択:
使用のUnicode文字列を

通常のマルチバイト選択の場合:
マルチバイト文字セットを使用

TEXT()または_T()を文字列の周りに置くと、両方の文字列オプションと互換性があります。 Use multi-byte character setを選択すると、文字列の周りには何も必要ありません。 Use unicode character setを選択した場合は、少なくとも文字列の前にLが必要です。

Use Unicode Character Stringsを選択すると、デフォルトではWで終わるWin32 APIもすべて使用されます。例:MessageBoxMessageBoxWにマップされます。

Use multi-byte character setを選択すると、デフォルトではAで終わるすべてのWin32 APIも使用されます。例:MessageBoxMessageBoxAにマップされます。

1

それはあなたが明示的にフォームのワイド文字列リテラル宣言できることは注目に値する:

WCHAR *s = L"Hello Wide World."; 

マクロTEXT()または_T()よりも少ないキーストロークが必要ですが、これはワイド文字を行いますUNICODEが定義されていない場合でも