前面已经学习了Qt项目如何创建dll, 本文就接着学习如何在项目中使用创建好的dll。

在Qt Creator中可以同时打开两个project,其中一个是active 状态,其工程名称用黑体表示。可以用鼠标右键在两个工程之间来回设置active project,以便build和run相应的工程。同时打开两个工程,给工程的建立,带来便利,提高了效率。结合本文来讲,就是可以把创建dll的工程打开,然后再新建一个调用它的新工程(为方便起见,调用dll的工程称为当前工程,下同)。

在当前工程使用dll, 在这里分成4个小的步骤:step 1: 将dll的头文件拷贝到当前工程的main.cpp文件所在的目录下,然后将拷过来的dll的头文件添加到当前工程中。添加方法是,右键点击当前工程文件名,选择Add Existing Files。将拷贝过来的两个头文件,添加到当前的工程中以后,在main.cpp中添加一行代码:

#include “mydll.h”

示例中创建了一个MyDll.dll, 需要添加这个dll的两个头文件到工程libTester中,完成后如下图:

qt导入dll函数(Qt项目如何使用DLL)(1)

工程libTester的资源管理情况

step2: 将MyDll.dll文件从库创建的目录,拷贝到当前工程编译的目标文件所在的目录。

dll文件可以build出release和debug两个版本。release版本的dll则拷贝到当前工程build所生成的目录下的release子目录。debug版本的dll则拷贝到当前工程build所生成的另一个目录下的debug子目录。main.cpp编译后生成的main.o文件也在这个子目录中,相应的exe文件也会在这产生。

qt导入dll函数(Qt项目如何使用DLL)(2)

拷贝dll文件到当前编译输出文件的目录下

step 3: 在当前工程的pro文件中,配置dll文件的路径:

LIBS = PATH

这里的PATH就是拷贝dll所放的那个目录(亦即main.o所在子目录)

qt导入dll函数(Qt项目如何使用DLL)(3)

在工程文件中配置dll的路径,以便进IDE找到dll

step 4: 在main中调用MyLib.dll:

#include <QCoreApplication>

#include "mydll.h" //这是要使用的动态链接库的头文件

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

MyDll clib; //调用动态链接库MyLib, 创建了一个对象。

clib.test(); //test()在动态连接库中使用qDebug()输出提示信息,以测试程序运行结果。

return a.exec();

}

【小结】本文学习了如何在Qt工程中使用我们已经创建好的动态链接库(dll)。dll是一个容器,把编译好的类装在里面,在其他工程中可以直接使用它。

在Qt编程中,我们可以把一些可以重复使用的代码,创建成dll,在后续的编程中,作为自己的库调用。

,