0

我正在尝试连接一个 LPCWSTR 和一个 char[] (并获得 LPCWSTR 作为输出)。

我怎样才能做到这一点?

4

2 回答 2

3

您正在尝试将 UNICODE 字符串与 ANSI 字符串连接。除非您将 ANSI 字符串转换为 UNICODE,否则这将不起作用。您可以为此使用MultiByteToWideChar,或者如果您使用 ATL 或 MFC ,则可以使用ATL 和 MFC 字符串转换宏。

于 2011-05-20T12:57:07.040 回答
1

您可以使用以下代码(来自MSDN)将char[]数组转换为宽字符数组

wchar_t * wcstring = new wchar_t[strlen(array) + 1];

// Convert char* string to a wchar_t* string.
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, wcstring, strlen(array) + 1, array, _TRUNCATE);

之后,您可以使用wcscat_s将转换后的字符数组连接到原始LPCWSTR.

于 2011-05-20T13:03:00.953 回答