UNICODE と _UNICODE の違いは何ですか? Unicode 文字を使用するようにプログラムをコンパイルする場合、両方を定義する必要がありますか? Unicode 文字を使用するための 2 つの異なる識別子がある理由はありますか?
質問する
1650 次
1 に答える
4
Raymond Chenは次のように答えています。
アンダースコアのないプレーン バージョンは、Windows ヘッダー ファイルがデフォルトとして扱う文字セットに影響します。たとえば、UNICODE を定義すると、GetWindowText は GetWindowTextA ではなく GetWindowTextW にマップされます。同様に、TEXT マクロは "..." ではなく L"..." にマップされます。
アンダースコアのあるバージョンは、C ランタイム ヘッダー ファイルがデフォルトとして扱う文字セットに影響します。たとえば、_UNICODE を定義すると、_tcslen は strlen ではなく wcslen にマップされます。同様に、_TEXT マクロは "..." ではなく L"..." にマップされます。
于 2012-06-17T15:31:03.423 に答える