• 4940阅读
  • 4回复

无法链接QString的toStdWString [复制链接]

上一主题 下一主题
离线isml
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-02
使用官方的5.0.2 msvc版,新建Qt Console程序:

#include <QtCore/QString>
int main(int argc, char *argv[])
{
QString s;
s.toUtf8();
s.toStdWString();
return 0;
}


链接报错:
error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall QString::toStdWString(void)const " (__imp_?toStdWString@QString@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@XZ),该符号在函数 _main 中被引用
1>I:\TestProject\Cpp\TestQString\Win32\Debug\\TestQString.exe : fatal error LNK1120: 1 个无法解析的外部命令

但toUtf8可以链接,不知道各位的机器上能否链接toStdWString
离线雷小某

只看该作者 1楼 发表于: 2013-05-02
可链接,不过需要去掉main的参数,不过这样就变成了普通的C++ ConsoleApp了,引入的QString头文件作用就类似引入Boost一样。LZ你这是Qt ConsoleApp,那main里面的参数需要被QCoreApplication的一个实例调用,想了解细节过程自己单步Debug看看吧。
离线雷小某

只看该作者 2楼 发表于: 2013-05-02
抱歉,说错了一点,请忽略“类似Boost一样"
离线dbzhang800

只看该作者 3楼 发表于: 2013-05-03
编译时,VC编译器选项使用 /Zc:wchar_t
离线isml

只看该作者 4楼 发表于: 2013-05-03
版主果然是牛人,使用/Zc:wchar_t 选项编译通过!
快速回复
限100 字节
 
上一个 下一个