1.生成DLL
1.1新建Library项目
我所使用的版本为Qt5.9.9
全部都下一步即可,在Qt module这里我是默认的Core,可根据自己的需要进行选择
创建完毕后会自动生成一下几个文件
1.2将下图mydll_global.h中的代码复制去mydll.h文件中
1.3添加测试代码
在mydll.h文件中添加#incldue <QDebug> 和void printDLL()两行代码,添加位置如下图所示
接着在mydll.cpp中写下函数的实现
1.4编译
对项目进行编译,注意是编译而不是运行
接着在存放mydll项目的相同目录下会生成一个build-mydll-Desktop_Qt_5_9_9_MinGW_32bit-Debug文件夹
在该文件夹中的debugwen文件夹中会生成对应dll文件,如果是在release模式下编译的,则出现在release文件夹下
2.调用DLL
2.1新建测试项目
创建一个简单的Console Application项目来演示如何调用DLL
创建过程不再赘述,同样的一直下一步即可,完成后将生成的mydll.h和mydll_global.h文件拷贝至testmydll文件夹中
接着右键单击项目文件选择添加新文件
选中拷贝过来的文件
完成后如图所示
2.2复制DLL文件
运行程序
在testmydll同一目录下产生build-testmydll-Desktop_Qt_5_9_9_MinGW_32bit-Debug文件夹,进入其debug文件中看到
此时将先前生成的dll文件复制过来
2.3添加库文件路径
打开testmydll.pro文件,并添加如下代码LIBS+=D:\\QT\\Qttutorial\\build-testmydll-Desktop_Qt_5_9_9_MinGW_32bit-Debug\\debug\\mydll.dll这里的路径需要改成自己对应的路径
2.4测试
在main函数中编写测试代码
程序运行结果
至此,在Qt5.9.9中生成和调用自己的DLL完成。
3.备注
后面经过测试发现,如果未将mydll_global.h中的代码复制去mydll.h中也是可以正常使用的,如果复制了,则mydll.h中则不再需要#include "mydll_global.h"同时也不再需要mydll_global.h文件了,后面拷贝头文件时也只需拷贝mydll.h即可
更改后的mydll.h文件内容以及项目所包含的文件: