qt5将程序打包并使用

一、封装程序

(1)、点击创建项目->库->c++library

(2)、填写自己想要封装成库的名称,这里我填写的名称为mydll1

(3)、如果没有特殊的要求,则一路下一步,最终会出现如下文件列表。

(4)、删除mydll1_global.h文件,编写mydll1.h文件内容如下:

其中class Q_DECL_EXPORT Mydll为需要封装的类名,可以在类中编写相关函数,在上述例子中,我们编写了一个add函数。

cpp 复制代码
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函数:

点击运行,调用成功。

相关推荐
code2cat3 小时前
Java进阶篇之AtomicMarkableReference:引用还在,标记已经改变
java·开发语言·cas·并发编程·逻辑删除
CappuccinoRose3 小时前
FormData数据处理
开发语言·前端·javascript·表单数据
Zguigo3 小时前
【CUDA8】第一个CUDA C++ Kernel --vector add
java·开发语言·c++
-Marks-4 小时前
【C++编程】STL容器(二)--- vector底层模拟实现(常用接口实现 | 扩容机制 | 深浅拷贝 | 迭代器失效)
开发语言·c++·vector·内存管理·迭代器失效·vector底层模拟实现
Shadow(⊙o⊙)4 小时前
C++11并发支持库
开发语言·c++
一技安身4 小时前
【java】JDK8 + JDK17 绿色解压共存方案-全程不修改任何系统环境变量
java·开发语言
hudd6685 小时前
JavaEE 初阶 - 多线程(初阶)
java·开发语言·java-ee
I Am a robert girl5 小时前
稀有事件估计的迭代去对齐:从源码视角拆解重要性采样新范式
开发语言·python·机器学习·重要性采样·蒙特卡洛方法·稀有事件估计
golang学习记5 小时前
rust开发,选VS Code还是RustRover?
开发语言·后端·rust
打工仔折腾 AI6 小时前
从零写一个CAD 05:以鼠标为中心的滚轮缩放,招法能复用但顺序不能反
开发语言·后端·python·性能优化·计算机外设·swift·ai agent 实战