QT应用编程: Window系统下QT5创建DLL动态库并完成调用

简介: QT应用编程: Window系统下QT5创建DLL动态库并完成调用

一、环境介绍

操作系统:  win10  64位


QT版本:  QT5.12.6


编译器:  MinGW 32位


二、创建动态库

2.1 创建库的方式1

QtCreate创建工程的向导里有创建库的工程选项,按照向导创建工程之后,写好代码,点击QtCreate左下角的 “小锤锤”,构建完成,就可以在构建的目录下生成库文件。

image.png

image.png

2.2 创建库的方式2

一般情况下,工程可能之前已经创建好了,并且功能都已经完,现在想生成库文件给被别人调用。 这时,只需要修改xxx.pro工程文件即可。

在原来的工程文件里加上下面两行代码。

TEMPLATE = lib
DEFINES += DLL_CREATETEST_LIBRARY

image.png

修改之后,构建工程即可。

image.png

image.png

三、调用动态库

3.1 创建一个新的工程,调用dll库

image.png

image.png

image.png

image.png

image.png

3.2 拷贝库文件和头文件

(1).  将生成库的时(原工程)用到的头文件全部拷贝到新工程(调用库的测试工程)的目录下。

image.png

(2).  将原工程生成的dll动态库拷贝到新工程(调用库的测试工程)的目录下。

image.png

(3)   修改xxx.pro工程文件

 加上代码:

LIBS += $$PWD/DrawTimeLine.dll

(4).  修改主函数代码,调用测试函数

#include <QApplication>
#include "widget.h"
#include "drawtimeline.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

image.png

3.3 完成调用测试

image.png

构建完成之后,还需要将用到的动态库文件,拷贝一份到刚才构建的目录下。不然运行时找不到库文件。

image.png

image.png


目录
相关文章
|
3月前
QT6使用CMamke将qml打包成dll
QT6使用CMamke将qml打包成dll
66 0
|
3月前
|
API 开发工具 C语言
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
C语言与图形界面:利用GTK+、Qt等库创建GUI应用。
179 0
|
6月前
|
Windows 安全 C++
Qt字符串类应用与常用基本数据类型
Qt字符串类应用与常用基本数据类型
|
6月前
|
开发框架 物联网 云计算
Qt应用领域分析与实践
Qt应用领域分析与实践
195 0
|
6月前
|
XML 网络协议 关系型数据库
Qt框架概述与应用实例
Qt框架概述与应用实例
96 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
153 2