2
請有人解釋爲什麼這不起作用?我如何錯誤地使用CA2W?
char *test = "test";
_TCHAR *szTest = CA2W(test);
請告訴我應該做些什麼。
而不是給我同等的文本,它給我:
請有人解釋爲什麼這不起作用?我如何錯誤地使用CA2W?
char *test = "test";
_TCHAR *szTest = CA2W(test);
請告訴我應該做些什麼。
而不是給我同等的文本,它給我:
根據MSDN,這是不好的。所以我用這個代替:
char *test = "test";
CA2W szTest(test);
從這裏,我們可以得到一個LPWSTR類型,如果我們真的想:
LPWSTR test = szTest.m_psz;
似乎還更好地使用LPWSTR而不是_TCHAR * - 但我米不知道(我認爲他們本質上是一樣的東西,但可能是錯的)。
LPWSTR和_TCHAR *並不總是相同的。 LPWSTR中的W告訴你它是一個寬字符串(每個字符2個字節)。在_TCHAR中,T的大小取決於您是使用Unicode還是多字節字符集編譯項目(在項目設置中),在這種情況下,根據您的構建設置,每個字符會有1或2個字節。 – 2010-12-15 13:29:19