2015-11-27 71 views
1

如果寫代碼可與不同性格類型進行編譯,是TCHAR仍然是正確的類型使用如std::basic_stringstream<TCHAR>現在在C++中是否有官方的TCHAR類型?

還是有現在這是首選,在路上wchar_t取代WCHAR一些官方C++/STL類型,true替換TRUEnullptr替換NULL

我在談論使用類似basic_string這樣的類的例子,這些類使用TCHAR進行了明確的模板化。

+1

不,我認爲wchar_t是無意義的(因此TCHAR,它是char或wchar_t,也是無稽之談)。如果可能,請使用utf8 –

+0

您能澄清您的用例嗎?您是否事先知道您要傳輸的內容是否以null結尾?可變寬度?固定寬度嵌入式空值? – rubicks

+0

@rubicks我不是這方面的專家,我的編輯能澄清一點嗎? –

回答

7

No. TCHAR允許您根據微軟的_UNICODE宏和Microsoft的各種其他'T'宏在charwchar_t之間切換。這與標準的C++ API沒有關係。

如果您要維護使用TCHAR的傳統C++程序,那麼您可以繼續使用TCHAR。

對於寫什麼我見過的人喜歡一直避免使用傳統的代碼頁完全,而使用char爲UTF-8,然後在Windows無條件使用*寬的API,UTF-8 char之間轉換的新方案字符串和wchar_t在API邊界。

相關問題