我如何错误地使用 CA2W?

Nic*_*ton 2 char tchar

请有人解释为什么这不起作用?

char *test = "test";
_TCHAR *szTest = CA2W(test);
Run Code Online (Sandbox Code Playgroud)

请告诉我我应该做什么。

它没有给我同等的文字,而是给了我:

????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

Nic*_*ton 5

根据 MSDN,这很糟糕。所以我用这个代替:

char *test = "test";
CA2W szTest(test);
Run Code Online (Sandbox Code Playgroud)

从这里,如果我们真的想要,我们可以得到一个 LPWSTR 类型:

LPWSTR test = szTest.m_psz;
Run Code Online (Sandbox Code Playgroud)

使用 LPWSTR 而不是 _TCHAR * 似乎更好 - 但我不确定(我认为它们本质上是一样的,但可能是错误的)。