如何连接 LPCWSTR 和 char[]?

发布于 2024-11-09 00:47:32 字数 71 浏览 0 评论 0原文

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

我怎样才能做到这一点?

I am trying to concat a LPCWSTR and a char[] (and get LPCWSTR as output).

How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哥,最终变帅啦 2024-11-16 00:47:32

您正在尝试将 UNICODE 字符串与 ANSI 字符串连接起来。除非将 ANSI 字符串转换为 UNICODE,否则这将不起作用。您可以使用 MultiByteToWideChar 来实现此目的,或者 < a href="http://msdn.microsoft.com/en-us/library/87zae4a3%28v=vs.80%29.aspx" rel="nofollow">ATL 和 MFC 字符串转换宏(如果您使用的是 ATL 或 MFC)。

You are trying o concatenate a UNICODE string with an ANSI string. This won't work unless you convert the ANSI string to UNICODE. You can use MultiByteToWideChar for that, or ATL and MFC String Conversion Macros if you're using ATL or MFC.

画中仙 2024-11-16 00:47:32

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

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

You could convert your char[] array into a wide-char array using the following code (from MSDN)

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);

After that you can use wcscat_s to concatenate the converted character array to your original LPCWSTR.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文