【发布时间】:2021-10-18 17:44:58
【问题描述】:
我正在尝试创建一个应用程序,在该应用程序中我有一个尝试复制宽字符串的函数。我目前正在使用_wcsdup(),因为它是一个 Windows 应用程序,对我来说一切正常。但我需要创建一个多平台函数,所以_wcsdup()(这是一个 Windows 函数)对我不起作用。
现在,我的代码如下所示:
wchar_t* out = _wcsdup(wstring.str().c_str());
其中wstring 是一个字符串流。
现在,我正在寻找一个适用于 Windows 和 Linux 的通用功能,以使该功能正常工作。
【问题讨论】:
-
你为什么不用
std::copy? -
为什么不
std::wstring out = wstring.str();? -
顺便说一句,
wstring是一个可怕的变量名称,因为它与标准库类型std::wstring相同。 -
@Galik OP 确实说:“wstring 是字符串流”
-
@GhasemRamezani 是否存在
std::copy的重载,它返回一个wchar_t *字符串,稍后可以由free释放?
标签: c++ linux windows widechar wchar