0

目前我有代码(typedef _Null_terminated_ CONST WCHAR *LPCWSTR;):

LPCWSTR wchar_string(L"ABC");

但需要启用这样的功能:

std::string s("ABC");
...
LPCWSTR wchar_string(/* create somehow from variable s */);
4

1 回答 1

0

std::string是一个 8 位的字符串。 wchar_string是宽 (UTF-16) 代码点的数组。根据定义,这需要进行转码操作,而不仅仅是简单的分配。

首先,8位字符串是如何编码的?是 UTF-8、Windows ANSI“当前代码页”、仅限 Latin-1 还是什么?

其次,调用类似 Windows 的函数MultiByteToWideChar来完成繁重的工作,并确保为 wchar_string 指向的结果缓冲区管理内存。

于 2014-10-13T21:20:12.003 回答