5

VC++ でユニコード文字列をどのように使用すればよいですか? もちろん、UNICODE を #define する必要がありますが、文字列はどうでしょうか?

TEXT() または _T() マクロをすべてのテキストで使用する必要がありますか?それとも文字列の前に L を配置する必要がありますか? 最近はすべてのプログラムで Unicode を使用する必要があると私は考えています。

意見?

4

3 に答える 3

2

それはあなたが何を達成したいかによります。コードが Unicode の有無にかかわらず正しくコンパイルされて動作することを確認するには、TEXTまたは_Tマクロを使用し、「既定の」Win32 関数名 (たとえばCreateWindow) を呼び出します。

プログラムが常に Unicode API を使用するようにしたい場合はL、文字列の前にプレフィックスを使用し、Win32 関数のワイド バージョン ( などCreateWindowW) を呼び出す必要があります。

UNICODE後者の場合、が定義されているかどうかに関係なく、Unicode の動作が得られます。UNICODE前者の場合、アプリケーションはが定義されているかどうかに基づいて動作を変更します。

非 Unicode バージョンは Win98 以降はあまり関係がないという意見に同意するので、2 番目の方法を使用します。

于 2011-09-19T18:40:20.937 に答える
1

Lプレフィックス付きの Unicode 文字列リテラルを宣言します。

TEXT()または_T()マクロは、Windows の Unicode バージョンと非 Unicode バージョン (Windows 9x) の両方で単一のソースをコンパイルする必要があった、悪しき時代のためのものでした。ありがたいことに、今日は Windows 9x を安全に無視できます。

于 2011-09-19T18:40:04.073 に答える
1

少し前に学んだこと:

黄金律:

フレームワークと戦わないでください。

フレームワークが行うように設計されていることを実行します。Windows を使用している場合は、 を使用_Tして、コードを文字タイプから独立させます。Linux を使用している場合は、UTF-8 を使用してください。クロスプラットフォームのフレームワークを使用している場合は、それが行うことは何でもしてください。ただし、よほどの理由がない限り、独自のものを発明しようとしないでください。(通常、フレームワークに対して作業する価値はありません。)

于 2011-09-19T18:54:02.740 に答える