QString与std::wstring的转换问题


问题描述:

   在qt工程中调用QString::fromStdWString()时,老是报错error LNK2019: 无法解析的外部符号...QString::fromStdWString(...)...

原因:

   在Qt库中 wchar_t 不是内置类型,所以QT建议我们构建基于Qt的软件时,也不要将 wchar_t 作为内置类型。但是在一些情况下,其他的库构建时可能已经将 wchar_t 作为了内置类型。当使用 std::wstring、QString::toStdWString()和 QString::fromStdWString() 将导致链接错误.

解决方案:

std::wstring qToStdWString(const QString &str) { #ifdef _MSC_VER return std::wstring((const wchar_t *)str.utf16()); #else return str.toStdWString(); #endif }   /*! Convert an std::wstring to a QString */ QString stdWToQString(const std::wstring &str) { #ifdef _MSC_VER return QString::fromUtf16((const ushort *)str.c_str()); #else return QString::fromStdWString(str); #endif }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM