我试过实现这样的功能,但不幸的是它不起作用:
const wchar_t *GetWC(const char *c)
{
const size_t cSize = strlen(c)+1;
wchar_t wc[cSize];
mbstowcs (wc, c, cSize);
return wc;
}
我的主要目标是能够将普通字符字符串集成到 Unicode 应用程序中。非常感谢你们提供的任何建议。
原文由 AutoBotAM 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
std::wstring
而不是 C99 可变长度数组。当前标准保证std::basic_string
的连续缓冲区。例如,C++ 不支持 C99 可变长度数组,因此如果您将代码编译为纯 C++,它甚至无法编译。
通过这种更改,您的函数返回类型也应该是
std::wstring
。记得在
main
中设置相关的语言环境。例如,
setlocale( LC_ALL, "" )
。