开发环境:Qt5.8.0+Qt Creator
一、代码封装成dll文件
步骤一:创建工程
图1:创建生成dll的工程
图2
图3
图4: 此处需要勾选QtCore,因为后面需要使用该库内QtCore/qglobal.h
文件中的Q_DECL_EXPORT
类
图5
图6
图7:创建生成的工程目录
点击运行按钮测试是否可以成功运行,如果出现下图提示则说明运行成功。如果当前运行模式是debug,则在对应的debug目录下会看到生成库文件;如果运行模式是release,则在对应的release目录下会看到生成的库文件:

图8:

图9:生成的库文件
注意: debug
和 release
两种模式下生产的文件是在各自生成目录下的,即两种运行模式下生成的文件分别会在如图10中的不同位置: ***debug/debug/
和 ***release/release/
。debug
模式下就去如图10中的***debug
文件夹下的debug
文件夹下找生成的库文件,release
模式下就去如图10中 ***release
文件夹下的 release
文件夹下找生成的库文件:

图10
步骤二:工程内添加内容
1.在创建的makedll.h文件中添加函数声明int sum(int x, int y);
:
图11
2.在创建的.cpp文件中添加函数实现:
图12
步骤三
点击运行按钮,就会生成封装好的dll文件,在对应的debug或者release目录下可以看到生成好的文件。
二、dll文件使用
步骤一:创建测试工程
创建测试dll库文件的工程
图13
步骤二:修改.pro文件
1.在.pro文件中添加:
QT += core
,并注释掉CONFIG -= qt
2.在.pro文件中引用封装生成的.dll动态链接库LIBS += ***\MakeDll.dll
,其中***
表示上面封装生成的.dll文件保存的路径
图14
步骤三:拷贝.h文件
把生成dll文件工程中的所有.h文件拷贝到当前工程目录下,笔者需要拷贝的即是:makedll.h
和makedll_global.h
两个.h文件,如下图所示:
图15
步骤四:修改测试工程的main.cpp文件调用dll库
图16
步骤五:拷贝封装生成.dll库文件
现在点击运行按钮,执行程序,可能会出现如下错误提示,该提示说明动态链接生成的.dll库文件失败:
图17
解决方法:把生成的.dll文件拷贝到测试工程生成的.exe同级目录下,如下图所示:
图18
步骤六:运行测试程序
现在再次点击运行按钮进行测试,则运行成功:
图19
Finished