【发布时间】:2021-08-07 08:43:31
【问题描述】:
我已经在互联网上搜索了几天关于这个问题。我做了一个 win32 项目,我想在其中将 wstring 转换为 WCHAR 数组
请举个例子 如果您发现任何错误,请举例说明
wstring timeNow = L"Hello";
WCHAR timeWchar[6] = {(WCHAR)timeNow.c_str()}; // Not Working
当我运行我的程序时,我只看到一个正方形而不是文本
【问题讨论】:
-
这能回答你的问题吗? How to convert wstring to wchar_t*? C++
-
WCHAR 数组是 6 大真的很重要吗?由于您正在创建一个数组,因此您需要将值复制到其中。您也可以这样使用
const WCHAR *timeWchar = timeNow.c_str();,也可以使用带有const WCHAR [ ]参数的函数,而无需复制。 -
您的代码失败,因为强制转换告诉编译器一个谎言。指针不是 WCHAR。这就是编译器反对的原因,也是为什么强制转换允许代码编译但没有做任何有用的事情的原因。我的一个问题是你在用这个数组做什么?正如 JVApen 所说,也许您根本不需要数组,具体取决于使用它的代码实际在做什么。很遗憾,我们看不到这一点。
-
我在下面留下了一个答案,显示了从字符串初始化数组的可能性。但是我突然想到,就像上面我最初没有阅读的 cmets 一样,可能根本不需要将字符串复制到数组中。 C++ 中有很多很棒的
std::类,它们可能比将字符串复制到数组中来完成手头的任务要好。你能更多地了解你真正想做的事情吗?如果您有更多详细信息,我会修改我的答案。