mfc和qt混合编程
老灰狼 2014-08-19 11:05:27 刚接触qt,
刚刚试了下混合编程,有些不明之处;
我用vs2012创建了一个mfc对话框应用程序,
包含头文件
#include "QtWidgets/QApplication"
#include "QtWidgets/QMessageBox"
#include "QtCore/QString.h"
加入依赖库lib
#pragma comment(lib,"Qt5Core.lib")
#pragma comment(lib,"Qt5Widgets.lib")
然后在对话框上添加一个按钮
接着在按钮响应函数中添加一行代码:
QMessageBox::information(0,QObject::tr(""),QObject::tr(""),0);
在编译完成后,链接时会报错误;
MfcUseQtDllDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QString::~QString(void)" (__imp_??1QString@@QAE@XZ),该符号在函数 "public: void __thiscall CMfcUseQtDllDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMfcUseQtDllDlg@@QAEXXZ) 中被引用
1>MfcUseQtDllDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class QString __cdecl QObject::tr(char const *,char const *,int)" (__imp_?tr@QObject@@SA?AVQString@@PBD0H@Z),该符号在函数 "public: void __thiscall CMfcUseQtDllDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMfcUseQtDllDlg@@QAEXXZ) 中被引用
1>MfcUseQtDllDlg.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static int __cdecl QMessageBox::information(class QWidget *,class QString const &,class QString const &,int,int,int)" (__imp_?information@QMessageBox@@SAHPAVQWidget@@ABVQString@@1HHH@Z),该符号在函数 "public: void __thiscall CMfcUseQtDllDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMfcUseQtDllDlg@@QAEXXZ) 中被引用
3 个无法解析的外部命令
根据mfc的经验 这应该是少一些lib导致的吧? 但是qt帮助文档中并没有提及这些信息,希望有经验的老师提示一下