1

重複の可能性:
UNICODE と _UNICODE の両方を使用するのはなぜですか?

UNICODE と _UNICODE の違いは何ですか? Unicode 文字を使用するようにプログラムをコンパイルする場合、両方を定義する必要がありますか? Unicode 文字を使用するための 2 つの異なる識別子がある理由はありますか?

4

1 に答える 1

4

Raymond Chenは次のように答えています。

アンダースコアのないプレーン バージョンは、Windows ヘッダー ファイルがデフォルトとして扱う文字セットに影響します。たとえば、UNICODE を定義すると、GetWindowText は GetWindowTextA ではなく GetWindowTextW にマップされます。同様に、TEXT マクロは "..." ではなく L"..." にマップされます。

アンダースコアのあるバージョンは、C ランタイム ヘッダー ファイルがデフォルトとして扱う文字セットに影響します。たとえば、_UNICODE を定義すると、_tcslen は strlen ではなく wcslen にマップされます。同様に、_TEXT マクロは "..." ではなく L"..." にマップされます。

于 2012-06-17T15:31:03.423 に答える