从std :: string变量动态创建“LPCWSTR”变量

时间:2013-12-24 03:04:49

标签: string winapi type-conversion wchar

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

LPCWSTR wchar_string(L"ABC");

但是需要启用这样的东西:

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

1 个答案:

答案 0 :(得分:0)

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

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

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