gpt4 book ai didi

windows - 将 QString 转换为 BSTR,反之亦然

转载 作者:可可西里 更新时间:2023-11-01 14:42:00 27 4
gpt4 key购买 nike

我想将 QString 转换为 BSTR,反之亦然。

这就是我尝试将 QString 转换为 BSTR 的内容:

std::wstring str_ = QString("some texts").toStdWString();
BSTR bstr_ = str_.c_str();

并将BSTR转换为QString:

BSTR bstr_;
wchar_t *str_ = bstr_;
QString qstring_ = QString::fromWCharArray(str_);

这是正确的吗?换句话说,有没有数据丢失?如果是,什么是正确的解决方案?

最佳答案

您可能应该使用 SysAllocString 来执行此操作 - BSTR 还包含长度前缀,这不包含在您的代码中。

std::wstring str_ = QString("some texts").toStdWString();
BSTR bstr_ = SysAllocString(str_.c_str());

除此之外,这里没有什么可丢失的 - BSTR 和 QString 都使用 16 位 Unicode 编码,因此相互之间的转换根本不应该修改内部数据缓冲区。

关于windows - 将 QString 转换为 BSTR,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15617510/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com