在我的代码,我接收const char array如下所示:

const char * myString = someFunction();

现在,我想它后处理的,因为我用事后不处理窄字符串的函数wchar array

什么是实现这一目标的最简单的方法?

最终的MultiByteToWideChar? (然而,由于它是一种窄字符串我得到作为输入,它不具有多字节字符=>可能不是最美丽的溶液)

有帮助吗?

解决方案

const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];

其他提示

的MultiByteToWideChar会工作,除非你在你的窄字符串中使用扩展字符。如果它的一个普通的字母数字字符串,那么它应该很好地工作。

您也可以看看mbstowcs是少一点令人费解,但不提供相同的控制量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top