2011-12-14 9 views
0

オートデスク3dsmaxのプラグインをコーディングしています。ユニコードでも動作させるために、すべての文字列リテラルに_T(x)マクロを使用することをお勧めします。このコードではstl文字列クラスを多く使用しています。だからコードを書き直さなければならないのですか?string( "foo"):string(_T( "foo"))?実際にstl文字列クラスはwcharsのコンストラクタを持っていないので、それは意味をなさないでしょうか?あなたは自分の文字列クラスを作成することができユニコードでのSTL文字列の使用

Thxを

+0

std :: stringはどのエンコードにも依存しません。そこにはUnicodeでエンコードされた文字列を格納できますが、メンバ関数は面白い結果を返すかもしれません:)文字列を使って何をしているかによって異なります。 – LiMuBei

+0

これらのマクロを使用することは、かなり前には意味をなさないことになりました。コードでstd :: wstringを使用してください。 –

答えて

0

「T」マクロの定義を見てください。「Unicode」ビルドでは「L」に、「非Unicode」ビルドでは何も展開されません。文字列calssを使い続け、プラグインの推奨に従っている場合は、同じルールに従うtstringのようなものを使用するのが最善の方法です。

しかし、この "T"ビジネスはすべて10年前に大変意味がありました。すべての現代のWindowsバージョンはUnicode専用で、wstringを使うことができます。

0

stringまたはwstringに切り替えユニコードにかどうかによって、内部的にそしてxstringを言うと定数のために_Tを使用して。またはそれをインスタンス化するxstring<yourchartype>

関連する問題