2011-12-14 66 views
0

我正在爲autodesk 3dsmax編寫一個插件,並且他們建議爲每個字符串文字使用_T(x)宏以使其與unicode一起工作。我在這段代碼中使用了stl string類。所以我必須重寫代碼:string(「foo」)to:string(_T(「foo」))?實際上,stl string類沒有wchars的構造函數,所以它沒有意義,是嗎?使用帶unicode的STL字符串

THX

+0

我不認爲std :: string取決於任何編碼。你可以在那裏存儲unicode編碼的字符串,但是成員函數可能會返回有趣的結果:)這取決於你對字符串做了什麼。 – LiMuBei 2011-12-14 14:03:08

回答

0

看看「T」宏的定義 - 它在「Unicode」構建中擴展爲「L」,或者在「非Unicode」構建中擴展爲「L」。如果你想繼續使用字符串calss並按照你的插件的建議,最好的辦法就是使用類似tstring的東西,它們遵循相同的規則。但事實是 - 所有這些「T」業務在10年前都有很多意義 - 所有現代Windows版本都只有Unicode,您可以使用wstring。

0

您可以創建一個自己的字符串類說xstring,並使用_T常量,然後在內部,這取決於Unicode或不切換到stringwstring。無論是或實例化xstring<yourchartype>