我想从 .dll 字符串表中读取 utf-8 测试。像这样的东西
LPWSTR nnW;
LoadStringW(hMod, id, nnW, MAX_PATH);
之后我想将其转换LPWSTR nnW
为std::wstring nnWstring
. 我试过这样:LPWSTR nnW; LoadStringW(hMod, id, nnW, MAX_PATH);
const int length = MultiByteToWideChar(CP_UTF8,
0, // no flags required
(LPCSTR)nnW,
-1, // automatically determine length
NULL,
0);
std::wstring nnWstring(length, L'\0');
if (!MultiByteToWideChar(CP_UTF8,
0,
(LPCSTR)nnW,
-1,
&nnWstring[0],
length))
MessageBoxW(NULL, (LPCWSTR)nnWstring.c_str(), L"wstring", MB_OK | MB_ICONERROR);
之后在 MessageBoxW 中只显示第一个字母。