VC环境下(非QT环境)使用Qt的配置方法

       最近在已经发布的dll工程中发现了一个bug,最后决定使用Qt的signal-slot机制去改善。但是原始dll工程并非Qt工程,只是一个MFC工程,直接使用Qt函数是会报错的。经过我的摸索,最终成功移植,使其兼容Qt的函数库。

步骤如下:

      1.在目标工程下,依次选择“项目--》**属性--》配置属性--》C/C++--》常规--》附加包含目录”中添加Qt的重要目录,如下图所示

VC环境下(非QT环境)使用Qt的配置方法_第1张图片

注:这里用的是绝对路径,相对路径好像不行。

2.依次选择“项目--》**属性--》配置属性--》连接器--》常规--》附加库目录”添加lib所在目录,如下图所示:

VC环境下(非QT环境)使用Qt的配置方法_第2张图片

3.依次选择“项目--》**属性--》配置属性--》连接器--》输入--》附加库目录”中添加qtmain.lib、QtCore4.lib、QtGui4.lib、QtSql4.lib;如下图所示:

VC环境下(非QT环境)使用Qt的配置方法_第3张图片

4.这样并没有结束,因为如果要使用Qt的signal-slot机制,还必须做以下两个工作:

    (1)如果要在类A里面声明和定义signals和slots,那么类A要继承QObject;

    (2)在类A的private数据区里要加上Q_OBJECT宏。

5.若想程序能够正常运行,还必须手动生成moc_***.cpp文件(Qt原始工程会自动生成),具体生成方法可参考:vs2010中自动生成Qt的moc文件的方法

另:这之间还遇到一个错误: 

error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject

解决方法请参考:http://blog.csdn.net/bzhxuexi/article/details/45482161

The  End.


你可能感兴趣的:(VS2010,qt,VC,移植)