qt dll编写和调用

dll编写

新建项目

在这里插入图片描述

头文件

#ifndef LIB1_H
#define LIB1_H#include "lib1_global.h"class LIB1_EXPORT Lib1
{
public:Lib1();
};//要导出的函数,使用extern "C",否则名称改变将找不到函数extern "C" LIB1_EXPORT int add(int a,int b);#endif // LIB1_H

CPP文件

#include "lib1.h"Lib1::Lib1()
{
}//导出函数实现
int add(int a, int b)
{return a+b;
}

调用

方式一:使用QLibrary

typedef  int (*PAdd)(int a,int b);
void MainWindow::on_pushButton_clicked()
{//QLibrary mylib("lib1");if(!mylib.load()){qDebug() << "lib1加载不成功";return;}PAdd fAdd = (PAdd)mylib.resolve("add");if(fAdd){qDebug()<<"add:"<<fAdd(10,20);}}

方式二:直接调用

1、将dll头文件复制到要调用的项目中,包括:lib1.h,lib1_global.h
2、将dll生成的文件复制到要调用项目中,包括:lib1.dll,liblib1.a
3、修改要调用项目的pro文件,在最后加上:

#D:/temp1/qt/lib1Test2是要调用的项目文件夹,liblib1是liblib1.a文件,不用.a后缀
LIBS += -LD:/temp1/qt/lib1Test2 -lliblib1

4、引入头文件:

#include "lib1.h"

5、调用代码:

//直接调用
qDebug()<<"add:"<<add(10,20);

6、将dll复制到生成的文件夹中,否则单独运行时会找不到dll

类导出与使用

请参考:https://blog.csdn.net/weixin_33955681/article/details/91966907

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css引入方式有几种?link和@import有什么区别?

在CSS中&#xff0c;引入外部样式表的方式主要有两种&#xff1a;<link>标签和import规则。 使用<link>标签引入外部样式表&#xff1a; <link rel"stylesheet" href"path/to/style.css">这种方式是在HTML文档的<head>部分或者…

Maven:复制到自定义的目录比如target/libs目录下

拷贝依赖包 mvn dependency:copy-dependencies&#xff0c;默认会拷到项目的 target\dependency 目录&#xff0c;想要复制到自定义的目录比如target/libs目录下&#xff0c;需要在pom.xml文件中添加设置覆盖默认设置&#xff1a; <build> <plugins> <plugin&g…

探索未来边界:前沿技术引领新纪元

目录 引言 一、人工智能与深度学习&#xff1a;智慧生活的引擎 1.医疗应用 2.智能家居 3.自动驾驶 二、量子计算&#xff1a;解锁宇宙的密钥 1.量子比特示意图 2.量子计算机实物图 3.分子模拟应用 三、生物技术&#xff1a;生命科学的革新 1.CRISPR-Cas9基因编辑图 2.合成生…

buuctf----warmup_csaw_2016

进来医院先来一套常规检查 啥保护都没,看大佬说基本栈溢出 CT一看 OK cat flag 更喜欢了 40060D 找到地址 get也来了,稳啦! 0x80-0x40 8 根据上道题的exp from pwn import * ghust remote("node5.buuoj.cn",27229) addr 0x40060D payload bA * 0x40 bB*8…

C++设计模式——Bridge桥接模式

一&#xff0c;桥接模式简介 桥接模式是一种结构型设计模式&#xff0c;用于将抽象与实现分离&#xff0c;这里的"抽象"和"实现"都有可能是接口函数或者类。 桥接模式让抽象与实现之间解耦合&#xff0c;使得开发者可以更关注于实现部分&#xff0c;调用…

[C++] 编译期间生成一个元素等差的std::initializer_list

前因 写编译器的时候需要一个常量英文字母表&#xff0c;懒得26个字母一个个打了&#xff0c;于是搓了个板子。 源代码 // c14 required #include <initializer_list> #include <type_traits>template <typename _Tp, _Tp first_elem, int item_number, type…

具有不确定性感知注意机制的肺结节分割和不确定区域预测| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Lung Nodule Segmentation and UncertainRegion Prediction With an Uncertainty-Aware Attention Mechanism 具有不确定性感知注意机制的肺结节分割和不确定区域预测 01 文献速递介绍 肺结节分割在肺癌计算机辅助诊断&#xff08;CAD&#xff09;系统中至关重…

java Springboot网上音乐商城(源码+sql+论文)

1.1 研究目的和意义 随着市场经济发展&#xff0c;尤其是我国加入WTO &#xff0c;融入经济全球化潮流&#xff0c;已进入国内外市场经济发展新时期&#xff0c;音乐与市场联系越来越紧密&#xff0c;我国音乐和网上业务也进入新历史发展阶段。为了更好地服务于市场&#xff0…

Java与服务网格(Service Mesh):构建高效微服务架构

在微服务架构成为企业开发标准的今天&#xff0c;如何有效地管理众多微服务之间复杂的通信成为了一个挑战。服务网格作为一种解决方案&#xff0c;它通过提供一个专门的基础设施层来处理服务间通信&#xff0c;从而使得应用开发更加专注于业务逻辑而非通信细节。本文将介绍服务…

px转rem插件postcss-plugin-px2rem使用方法(浏览器缩放页面自适应)

px转rem插件postcss-plugin-px2rem使用方法&#xff08;浏览器缩放页面自适应&#xff09; 1. 常见屏幕自适应的布局 百分比布局rem布局css媒体查询在前端框架设计初期&#xff0c;应优先选择好页面布局方式 2. postcss-plugin-px2rem插件的使用 官网地址&#xff1a;https…

程序员应该具备什么职业素养?

程序员应该有什么职业素养&#xff1f; 作为一个程序员&#xff0c;拥有以下职业素养是非常重要的&#xff1a; 扎实的技术功底&#xff1a;作为程序员&#xff0c;首先要具备扎实的技术基础&#xff0c;包括编程语言、算法、数据结构等方面的知识&#xff0c;能够熟练地解决问…

WebForms Hashtable

WebForms Hashtable 概述 在Web开发领域,尤其是使用ASP.NET WebForms框架时,Hashtable是一个经常被用到的数据结构。Hashtable是.NET Framework中的一个集合类,它提供了键值对的存储方式,其中每个键都是唯一的,键用于快速访问其对应的值。本文将详细介绍Hashtable在ASP.…

利用CompletableFuture优化Java中的异步编程

在现代应用开发中&#xff0c;异步编程是提高应用性能和用户体验的关键技术之一。Java从1.8版本开始引入了CompletableFuture&#xff0c;它为编写非阻塞的异步代码提供了强大的工具。本文将详细介绍CompletableFuture的使用方法&#xff0c;并通过具体代码示例来展示如何在实际…

不想搭集群,直接用spark

为了完成布置的作业&#xff0c;需要用到spark的本地模式&#xff0c;根本用不到集群&#xff0c;就不想搭建虚拟机&#xff0c;hadoop集群啥的&#xff0c;很繁琐&#xff0c;最后写作业还用不到集群&#xff08;感觉搭建集群对于我完成作业来说没有什么意义&#xff09;&…

Cisco Packet Tracer实验(二)

二、用交换机构建 LAN 构建物件如下&#xff1a; 四个PC 两个交换机 一个Multi Switch多功能拓展控制器 连线必须是这个直线&#xff01;&#xff01;&#xff01;不是虚线 最后实现效果如下&#xff1a; 全部的线是绿的&#xff0c;就表示是通的。 尝试一下&#xff0c;看PC…

SolidWorks对设计电脑硬件配置要求是怎么样的

SolidWorks&#xff0c;作为达索系统&#xff08;Dassault Systemes&#xff09;旗下的子公司&#xff0c;一直以其出色的机械设计软件解决方案而著称。它是基于Parasolid内核开发&#xff0c;是单核三维设计软件&#xff0c;面上使用比较多的版本有SolidWorks2022、SolidWorks…

Golang | Leetcode Golang题解之第149题直线上最多的点数

题目&#xff1a; 题解&#xff1a; func maxPoints(points [][]int) (ans int) {n : len(points)if n < 2 {return n}for i, p : range points {if ans > n-i || ans > n/2 {break}cnt : map[int]int{}for _, q : range points[i1:] {x, y : p[0]-q[0], p[1]-q[1]if…

解决vue项目路径用@报错问题,,

vue项目中不同文件src有的可以用来加载图片, 有的文件只能用相对路径../ , 很奇怪 一般vue项目框架下载下来,默认路径可以用 ,来替代相对路径 解决方法 清理缓存&#xff1a;删除node_modules目录下的.cache文件夹&#xff0c;或者使用IDE的清理缓存功能。 亲测有效 资料…

4. 案例研究-接口程序

4. 案例研究-接口程序 本章通过一个案例研究, 来展示设计互相配合的函数的过程.4.1 turtle 模块 创建一个文件mypolygon.py, 并输入如下代码:import turtle bob turtle.Turtle() print(bob)# 这一句的作用是让画板停留, 等手动点击x关闭画板, 程序才结束. # 否则程序执行完毕…

通用大模型与垂直大模型的博弈

在人工智能的蓬勃发展中&#xff0c;大模型正成为焦点&#xff0c;尤其是在通用大模型和垂直大模型之间的竞争中。通用大模型具有更广泛的应用场景&#xff0c;而垂直大模型则在特定领域中展现出更高的可能性和更快的普及速度。虽然目前谁能形成绝对优势尚无定论&#xff0c;但…