[C++] 如何在c ++中使用寬字符串文字而不需要把L放在每個文字前面



Answers

新的C ++ 0x標准定義了另一種方法:
http://en.wikipedia.org/wiki/C%2B%2B0x#New_string_literals

Question

你將不得不原諒我的無知,但我不習慣在c ++中使用寬字符集,但有沒有一種方法,我可以在c + +中使用寬字符串文字,而不需要在每個文字前面加一個L?

如果是這樣,怎麼樣?




你為什麼不想在字符串前加一個L? 非常簡單 - 沒有L的字符串是ANSI字符串( const char* ),帶有L的字符串是寬字符字符串( const wchar_t* )。 有TEXT()宏,它使字符串文字變成ANSI或寬字符字符串取決於當前項目設置為使用Uncode:


#ifdef UNICODE
#define TEXT(s) L ## s
#else
#define TEXT(s) s
#endif

還有_T()宏,相當於TEXT()




Links