Qt调用MFC的dll或者lib出错

来源:互联网 发布:kali linux 校验和 编辑:程序博客网 时间:2024/04/30 02:50

Qt调用MFC的dll或者lib出错

需要把以前用MFC写的工程移植到Qt上,工程比较大,就暂且先移植界面部分,dll库和lib库暂时不移植。
用VS2005创建Qt工程,工程 本身能够写一些包含MFC特性的东西(如CString),在调用dll库或者lib库时,调用一般类型的函数返回值(int型)可以成功,但如果其中的 函数有CString或者std::wstring类型的返回值时,编译不能通过。链接出错信息如下:
Linking...
qt_app.obj : error LNK2019: unresolved external symbol "public: class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > __thiscall LibAdd::GetString(void)" (?GetString@LibAdd@@QAE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@XZ) referenced in function "private: void __thiscall Qt_App::OnOKButton(void)" (?OnOKButton@Qt_App@@AAEXXZ)

qt_app.obj : error LNK2019: unresolved external symbol "public: class ATL::CStringT<unsigned short,class StrTraitMFC_DLL<unsigned short,class ATL::ChTraitsCRT<unsigned short> > > __thiscall LibAdd::GetCString(void)" (?GetCString@LibAdd@@QAE?AV?$CStringT@GV?$StrTraitMFC_DLL@GV?$ChTraitsCRT@G@ATL@@@@@ATL@@XZ) referenced in function "private: void __thiscall Qt_App::OnOKButton(void)" (?OnOKButton@Qt_App@@AAEXXZ)

也听说Qt官方公布了一个移植框架Qt Winmigrate,但这个框架还只能在win32平台跑,工程需要在win32和wince平台运行,没法用。

还尝试过用QTCreater创建工程,在pro文件中添加 LIBS += D:\WorkPlace\QtWin32\Win32_Lib2.lib,出错信息一样。

没辙了,请高手指点一下。

 

设置如下可解决:

project, C++/language/Treat wchar_t as build-in type 是true

原创粉丝点击