QT笔记——用VS + qt 生成dll 和 调用生成的dll

用VS + qt 生成dll 和 调用生成的dll
环境: vs 2019 + qt 5.12

第一步: 创建一个qt 的 类库
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第1张图片
第二步:创建类库的样子:
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第2张图片
.h文件 需要包含 qt为我们生成的 导入 和 导出 宏
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第3张图片
可以看一下这个宏

#  define Q_DECL_EXPORT __declspec(dllexport)
#  define Q_DECL_IMPORT __declspec(dllimport)

创建的时候 qt 已经为我们创建好了 预编译的 宏
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第4张图片
第三步:我们需要确定创建的是动态库
我需要创建的是 x64位,release 的 dll,根据自己代码 是否需要添加qt 的模块
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第5张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第6张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第7张图片
我的 是网络库 ,所以需要 我添加 network 模块
否则会出现如下情况:
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第8张图片

当然我们也可以手动添加 QT的网络库,根据自己的喜爱把,上面的肯定方便一些
连接库:Qt5Network.lib
连接路径:$(QTDIR)\lib
包含头路径:$(QTDIR)\include\QtNetwork

第四步:生成我们的dll
我们可以选择我们生成的dll的 名字 和 路径,这里只是简单测试,就不改名字了
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第9张图片
生成的如下:
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第10张图片

第五步:调用我们生成的dll

我们随便建立一个QT程序
配置我们的程序,让我们的程序可以使用刚才创建的dll,包含库的目录include,和lib目录和加载的.lib
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第11张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第12张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第13张图片

QT笔记——用VS + qt 生成dll 和 调用生成的dll_第14张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第15张图片
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第16张图片

代码如下:
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第17张图片

以为大功告成了?还差一步
我们需要将 dll 放到我们的.exe 文件的同级下
QT笔记——用VS + qt 生成dll 和 调用生成的dll_第18张图片

运行结果如下:
在这里插入图片描述

你可能感兴趣的:(QT,qt,windows,开发语言)