码迷,mamicode.com
首页 > 其他好文 > 详细

QString与std::wstring的转换问题

时间:2015-07-15 10:54:05      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

   在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
}

QString与std::wstring的转换问题

标签:

原文地址:http://www.cnblogs.com/singlebutterfly/p/4647558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!