Qt编写并且调用外部动态库(dll)

2023-10-27

一、利用Qt编写一个简单的动态库

利用Qt编写一个简单的动态库、里面含有加、减、乘、除四个函数接口。

1、打开Qt、新建一个项目、选择Library、C++库、然后点击确认。

2、选择共享库、写入项目名称、我这里命名为《QtMathDLL》、选择项目的路径、然后点击下一步。

 

 3、然后一直点击下一步、最后点击完成、项目就创建好了、含有以下几个文件。接下来就是编写代码。

4、在头文件加入四个接口函数的声明,代码如下:

 

5、在 源文件中、编写四个接口函数的代码。如下所示:

 

6、最后点击左下角的构建按钮就可以了、注意是构建、不是运行。编译模式的话根据自己的选择需要Debug还是Release模式、但是一定得和你需要用到项目的运行模式一样、你的项目是Debug模式,这边就必须选项Debug模式、你的项目是Release模式,这边就必须选项Release模式、否者会出现错误(Must construct a QApplication before a QWidget)。

 

7、 最后、在项目的目录下就可以看到dll文件了(我的是Debug、所以在Debug目录里面找)。接下里就是如何调用这个动态库了。

二、利用Qt调用动态库

Qt调用动态库有隐式调用和显式调用两种方式。

(一)、隐式调用

隐式调用是指在编译时不需要显式地链接库,而是在运行时动态加载库并调用其中的函数。

        1、创建一个新的项目、这个过程我就不多说了。相信大家都已经信手沾来了。

        2、将上面生成的动态库文件放在项目的exe文件同目录下、头文件和lib文件(放在lib文件夹里面)放在项目的代码目录下。

 

 

         3、在项目的Pro文件中添加头文件和lib文件的路径。

         4、在项目中调用库文件。在头文件中先声明、在源文件中引用,代码如下:

头文件:

 源文件:

 运行结果:

(二)、显式调用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt编写并且调用外部动态库(dll) 的相关文章

随机推荐

  • 【kali换源后报错:The repository ‘http://old.kali.org/kali moto InRelease‘ is not signed.的解决办法】

    问题描述 添加旧源 vim etc apt sources list 末行追加 deb http old kali org kali moto main non free contrib 更新源 apt get update 报错 Err
  • python,Pycharm导入自定义包

    1 Pycharm中如何让导入的自定义包生效 第一步 File gt Settsing gt Build Executions Deployment gt Console gt Python Console gt 勾选 add source
  • Android——使用Spinner实现下拉列表

    1 执行步骤 1 确定数据源 添加一个下拉列表项的list 2 定义适配器 添加数据源 为下拉列表定义一个数组适配器ArrayAdapter 3 为适配器设置下拉时的菜单样式 adapter setDropDownViewResource
  • 【Python项目】简易的密码本

    import json 名称文件 名称 json 账号文件 账号 json 密码文件 密码 json 名称 账号 密码 序列号 0 更新数据 with open 账号文件 as f 账号 json load f with open 名称文件
  • js代替eval的办法

    在滚滚的boring写代码的潮流中 eval 方法逐渐被淘汰 那我们可以用什么方法代替它呢 binggo 以下方法使用效果超出你的想象 function evalPro str var Fn Function return new Fn r
  • layui框架学习(5:面板)

    Layui中的菜单样式与面板结合比较紧密 在学习菜单之前 先熟悉Layui的面板样式 Layui的面板主要作为容器使用 其样式主要分为常规面板 卡片面板 折叠面板 含手风琴效果 Layui官网示例中还介绍了面板嵌套 本文后续一一介绍并验证
  • 图像描述算法排位赛:SceneXplain与MiniGPT-4谁将夺得桂冠?

    如果你对 AI 前沿感兴趣 本场 图像描述算法排位赛 绝对是你不能错过的 在这场较量中 SceneXplain 和 MiniGPT 4 将会比试 谁将摘得这场比赛的桂冠 直接上手体验 scenex jina ai 背景介绍 在 一张图就是一
  • php curl集成包的安装和实用

    下载curl集成包 https github com php mod curl 放在vendor目录下 加载curl包 实例化 vendor Curl src Curl Curl php pinJ new Curl 然后按照官网demo使用
  • 图像配准的方法

    转自 http blog sina com cn s blog 4b9b714a0100d5k5 html 图像配准的方法 1 基于特征的图像配准 基于特征的图像配准首先提取图像信息的特征 然后以这些特征为模型进行配准 特征提取的结果是一含
  • QT的ui文件中控件在cpp的调用

    点击然后右键 然后点击改变对象名称 改成如上图所示 即可在cpp函数中调用 进行操作
  • cdn搭建原理_什么叫cdn服务器?怎么部署?

    在现今的网络系统时期 各类互连网手机app异军突起 而互联网出現浏览卡屏或延时的状况也越来越非常广泛 以便处理不一样的互联网情况 人们常常会构建到不一样的虚拟主机来浏览互联网 cdn服务器也是列举这种 什么叫cdn服务器 cdn服务器英语全
  • CentOS7.x安装VNC实录

    不知不觉 centos已经到7 6了 在服务器操作系统中 centos是用的比较多的 占很大的比例 由于7 x版本和6 x版本有区别 最近安装了7 6的VNC 特记之 VNC需要系统安装的有桌面 如果是生产环境服务器 安装时使用的最小化安装
  • 学妹问我:OpenJDK是什么?作为师哥,必须万字详解屁颠屁颠奉上

    上一篇是分享的是 JVM虚拟机 了解Java堆中对象分配 布局和访问的全过程 这篇给大家分享 OpenJDK 1 OpenJDK 概述 OpenJDK 是 Java 平台标准版 Java SE 的免费开源实现 这是 Sun Microsys
  • python爬虫安装Xpath插件时遇到的问题

    在安装Xpath时 出现拖拉压缩包 记住一定是压缩包 下载后的插件是 crx后缀的文件 需要改变为压缩包的形式 后 在添加文件时 一直找不到压缩包 最后发现是压缩包后缀的问题 如图 是我的winr 压缩包软件 自动生成的压缩包 默认是rar
  • 数据聚合与分组运算

    标注 我用的是jupyterNotebook 一 分组与聚合的原理 在Pandas中 分组是指使用特定的条件将原数据划分为多个组 聚合在这里指的是 对每个分组中的数据执行某些操作 最后将计算的结果进行整合 分组与聚合的过程大概分为以下三步
  • nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

    问题描述 这个报错指的是结果无法映射 只需要把java实体与数据库表关系映射好就ok 一定要看清自己的配置文件 自己的数据库 处理思路整理 避免走弯路 1 首先验证是不是代码写出 String sql select count 1 from
  • Spring中@Autowired注解用法详解

    1 概述 Spring中IOC可以通过注解方式实现 只要在spring的配置文件applicationContext xml中配置开启了包扫描Spring会自动扫描指定包及其子孙包
  • 【Python三大结构练习2】

    目录 1 数字金额转换为中文大写金额 2 恺撒密码 3 大小写转换 1 数字金额转换为中文大写金额 描述 编写一函数 将数字金额转换为中文大写金额 设最高位考虑到亿 最低位考虑到分 如 数字金额为1023 445 转换为中文大写金额为 壹仟
  • tp6整合腾讯云cos上传

    1 创建一个名为 composer json的文件 内容如下 require qcloud cos sdk v5 gt 2 0 2 执行以下命令 使用 Composer 安装 php composer update 3 复制代码 我这里目录
  • Qt编写并且调用外部动态库(dll)

    一 利用Qt编写一个简单的动态库 利用Qt编写一个简单的动态库 里面含有加 减 乘 除四个函数接口 1 打开Qt 新建一个项目 选择Library C 库 然后点击确认 2 选择共享库 写入项目名称 我这里命名为 QtMathDLL 选择项