Win VC+QT安装教程请查看我的另一篇文章《QT+VC2012安装及配置》。
以下是在VC2012控制台中使用QT5.5.1。
1 将QT的头文件和库拷出来
把需要的头文件和lib分别放进一个文件夹。
2 VC添加包目录和库目录
3 添加需要的库
要注意QT安装完后库有Release版本和Debug版本,d.dll时Debug版本,.dll是Release版本,相应的lib也要配对否则在运行的是否会报找不到动态库。(是个坑,VC创建QT工程默认是包含Debug库的)
4 拷贝写好的对话框类
把从QTCrteate工程中的类直接考到VC项目中。
一定不要忘了ui_p10filedialog.h。
编译的时候却有错误。
1>p10filedialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall P10FileDialog::metaObject(void)const " (?metaObject@P10FileDialog@@UBEPBUQMetaObject@@XZ)
1>p10filedialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall P10FileDialog::qt_metacast(char const *)" (?qt_metacast@P10FileDialog@@UAEPAXPBD@Z)
1>p10filedialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall P10FileDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@P10FileDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1> E:\vs2012 workspace\VSandQT\Debug\VSandQT.exe : fatal error LNK1120: 3 个无法解析的外部命令
上网查了查,说是缺少moc_****.cpp
需要moc生成,发现QTCreator下编译好的目录下确实有这个文件,如下图所示。
如果没有可以使用命令生成,打开cmd。
- 先看下有没有mov,查看版本
咦,真的有耶。
- 编译mov_***.cpp
moc.exe p10filedialog.h –o moc_p10filedialog.cpp
把这个也拷入到VC的工程中,完整目录如下图所示。
5 在主函数中添加实现代码
QApplication a(argc, argv);
P10FileDialog p10Dialg;
p10Dialg.show();
a.exec();
printf(“p10FilePath:%s\n”,p10Dialg.p10FilePath.toLatin1().data());
system(“pause”);
return 0;
注意原有QT工程师return a.exec();这里就不要return了。
6 编译
把需要的动态库放到执行程序的目录下。
7 运行
是不是很激动呢~~~~~,其实QT就是C++的一种库。欢迎大佬指点。