Использовать строку STL с Юникодом - PullRequest
0 голосов
/ 14 декабря 2011

Я пишу плагин для autodesk 3dsmax, и они рекомендуют использовать макрос _T (x) для каждого строкового литерала, чтобы он работал и с юникодом.Я использую класс строки stl в этом коде.Так нужно ли переписывать код: string ("foo") в: string (_T ("foo"))?На самом деле у строкового класса stl нет конструктора для wchars, так что это не имеет смысла, не так ли?

Thx

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Посмотрите на определение макроса "T" - он расширяется до "L" в сборках "Unicode" или ничего в сборках "не Unicode".Если вы хотите продолжать использовать строку calss и следовать рекомендации для своего плагина, лучше всего использовать что-то вроде tstring , которое будет следовать тем же правилам.

Но правда в том, что -весь этот "T" бизнес имел большой смысл 10 лет назад - все современные версии Windows предназначены только для Unicode, и вы можете просто использовать wstring.

0 голосов
/ 14 декабря 2011

Вы можете создать собственный класс строки скажем xstring и использовать _T для констант, а затем внутри, в зависимости от юникода или нет, переключиться на string или wstring. либо это, либо создание экземпляра xstring<yourchartype>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...