当前位置: 首页 > article >正文

qt5将程序打包并使用

一、封装程序
(1)、点击创建项目->库->c++library
在这里插入图片描述
(2)、填写自己想要封装成库的名称,这里我填写的名称为mydll1
在这里插入图片描述
(3)、如果没有特殊的要求,则一路下一步,最终会出现如下文件列表。

在这里插入图片描述

(4)、删除mydll1_global.h文件,编写mydll1.h文件内容如下:
在这里插入图片描述
其中class Q_DECL_EXPORT Mydll为需要封装的类名,可以在类中编写相关函数,在上述例子中,我们编写了一个add函数。

extern "C"
{
    Q_DECL_EXPORT int add(int a, int b);
}

上述代码含义为,该函数可以被C语言或其他语言调用,同时这个函数是导出(export)的,意味着它可以从动态链接库(DLL)中被外部程序访问。
(5)、编写函数的实现,在对应的.cpp中

在这里插入图片描述
编写完成后选择release模式,点击编译(小锤子):
在这里插入图片描述
此时会在创建项目的文件夹中的“Mydll1\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release”找到“mydll1.dll”和“mydll.lib”。此时代码封装完成。

二、调用封装好的程序

(1)、创建一个名为test的新项目将之前打包程序中的“mydll1.h“的头文件粘贴到该项目下:
在这里插入图片描述(2)、release模式,点击编译(小锤子)
在这里插入图片描述
(3)、此时会在项目的根目录下会出现如下路径:test\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release
将封装好的mydll1.dll、mydll1.lib粘贴到如上位置。并将mydll1.lib的路径添加到test.pro中。
LIBS+=PATH\test\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Release\release\mydll1.lib。
(4)、在test的主函数中引用mydll1.h的头文件。并调用add函数:
在这里插入图片描述
点击运行,调用成功。


http://www.kler.cn/a/385687.html

相关文章:

  • 【LeetCode】【算法】19. 删除链表的倒数第N个结点
  • vue2面试题6|[2024-11-11]
  • 【Linux】常用命令(2.6万字汇总)
  • 揭开 gRPC、RPC 、TCP和UDP 的通信奥秘
  • 一文了解 Tableau 2024.3 如何展现已发布数据源的数据模型
  • Spring学习笔记(四)
  • 区间数位和
  • 抗辐照MCU芯片工艺解析:如何保障芯片的可靠性
  • 用户登录密码存储加密策略(附Python 和 bcrypt 库进行安全密码验证)
  • 【NLP】使用 SpaCy 通过 LLM 合成数据微调 NER 模型
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-2))(11/30)
  • 《应用力学学报》
  • PyTorch nn.Embedding() 嵌入层详解和要点提醒
  • CSS3中的3D变换(3D空间与景深、透视点的位置、3D位移、3D旋转、3D缩放、3D多重交换、背部可见性)
  • 移动取证和 Android 安全
  • TCP(传输控制协议)和UDP(用户数据报协议)
  • uniapp 小程序 周选择器
  • 【机器学习】平均绝对误差(MAE:Mean Absolute Error)
  • stm32cubeide 1.16.1 在ubuntu 24.04上的安装
  • Intern大模型训练营(五):书生大模型全链路开源体系笔记
  • Python代码主要实现了一个基于Transformer和LSTM的混合模型,用于对给定数据集进行二分类任务
  • 用 Python 从零开始创建神经网络(一)
  • MeterSphere接口自动化-ForEach循环
  • 五分钟使用 CocosCreator 快速部署 TON 游戏:开发基于 ZKP 的游戏
  • 【dvwa靶场:XSS系列】XSS (Stored)低-中-高级别,通关啦
  • 华为大咖说 | 浅谈智能运维技术