VS2019生成的DLL,给QT(MinGW版本)使用的小结
-
VS2019端:
a 基于生成一个DLL的工程(要注意生成是x86,还是x64的,需要和后面的QT的App工程对应),这里不多解释了,网上多的是;
b 在cpp实现文件里,假如要导出一个这样的函数:
int add(int a, int b)
{
return a+b;
}
那么,它对应的头文件,如abc.h,一定如下:即在头文件里,使用了extern "C"来限制这个函数名,这样的目的是在c++编译器下,产生c语言的编译链接规则:
#ifdef __cplusplus
extern "C" {
#endifint add(int a, int b);#ifdef __cplusplus
}
#endif
(具体c++和c语言编译链接规则extern "C",参考:extern “C”的作用详解 - 狂奔~ - 博客园 (cnblogs.com)
https://www.cnblogs.com/xiangtingshen/p/10980055.html)
注意,上述的cpp实现文件的函数名前,不要加extern "C"。
c 为了产生lib文件,在VS2019工程里添加def文件,这样的目的是生成DLL后导出的函数名为add,而不是乱七八糟的添加@各种前缀;还有一个目的是生成DLL的同时,还会生成lib文件,即如果不添加def文件,默认是不会产生lib文件的。
LIBRARY
EXPORTSadd @1
d 编译工程,产生DLL后,一定使用VS2019环境——【工具】——【VS命令提示】检查一下产生的dll是否符合预期要求:
在弹出的控制台输入命令:dumpbin /exports abc.DLL

如上图,可以看到导出的函数名为add。
QT端:
a 生成一个基于exe的App工程,注意32位/64位,一定和上面VS工程对应;
b 在pro工程文件里添加上面VS2019生成的DLL工程引用:
LIBS += "C:/abc/Debug/abc.lib"
(注意,这里添加的是lib文件名,测试引用DLL文件名也可以!)
c 引用上面VS产生的头文件abc.h,在cpp里直接使用add函数即可。
相关文章:
VS2019生成的DLL,给QT(MinGW版本)使用的小结
VS2019端: a 基于生成一个DLL的工程(要注意生成是x86,还是x64的,需要和后面的QT的App工程对应),这里不多解释了,网上多的是; b 在cpp实现文件里,假如要导出一个这样的…...
c++--SLT六大组件之间的关系
1.SLT六大组件: 容器,迭代器,算法,仿函数,适配器,空间配置器 2.六大组件之间的关系 容器:容器是STL最基础的组件,没有容器,就没有数据,容器的作用就是用来存…...
解析个人信息保护影响评估
一、个人信息保护影响评估的概念及范围(What) 什么是“个人信息保护影响评估”?如何理解?“个人信息保护影响评估”的概念未在我国高位阶的法律规定中明确,其历经从观念到实践的演变,逐渐形成业界普遍认可…...
2.阿里云对象存储OSS
1.对象存储概述 文件上传,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务,需要有存储的支持…...
(三)Unity开发Vision Pro——入门
3.入门 1.入门 本节涵盖了几个重要主题,可帮助您加快visionOS 平台开发速度。在这里,您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接,以及 PolySpatial XR 开发时的一些开发最佳实践。 2.开发与迭代 有关先决条件、开…...
召集令:CloudQuery 社区有奖征文活动来啦!
CloudQuery 社区第一期征文活动来袭!!!只要你对 CloudQuery 产品感兴趣,或者是希望了解 CQ ,都可以来参加,在本期活动中,我们也为大家准备了多种主题供你选择,CQ 使用案例、版本对比…...
【傅里叶级数与傅里叶变换】数学推导——1、基础知识点回顾及[Part1:三角函数的正交性]介绍
文章内容来自DR_CAN关于傅里叶变换的视频,本篇文章提供了一些基础知识点,比如三角函数常用的导数、三角函数换算公式等。 文章全部链接: 基础知识点 Part1:三角函数系的正交性 Part2:T2π的周期函数的傅里叶级数展开 P…...
BUUCTF [MRCTF2020]Ezpop解题思路
题目代码 Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier {protected $var;publi…...
【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树
一、驱动程序分离的思想 【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序的代码存在不少弊端:移植性差…...
深度学习中的python语法笔记总结
解释 torch中的 .clamp(min0) 在PyTorch中,torch.clamp将张量中的元素限制在指定的范围内。 torch.clamp(min0)会将张量中的每个元素与0进行比较,并将小于0的元素替换为0。其他大于等于0的元素则保持不变。 clamp函数原理 def clamp(x, lower, upper)…...
Reids 的整合使用
大家好 , 我是苏麟 , 今天带来强大的Redis . REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选…...
Vue3 —— watchEffect 高级侦听器
该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>,且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect,它的类型是: function watchEffect(effect: (onCleanup: OnCleanup) > void,o…...
Java异步子线程读取主线程参数的若干好玩场景
在开发过程中,我们难免会因为性能、实时响应等,需要异步处理的一些事务,并且在子线程中有时我们还需要获取主线程相关的参数。下面有若干方案可以实现上述场景,但会出现一定的问题。 场景1-基础场景 在主线程中开启子线程&#x…...
Android 视频开发
在 Android 平台上进行视频开发,您需要掌握以下关键知识点,以确保能够成功地开发和调试视频应用程序: Android视频架构: 了解 Android 的视频系统架构,包括视频捕获、编码、解码、渲染和显示等。 视频格式和编解码&am…...
【计算机网络篇】UDP协议
✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! UDP协议 1,UDP 简介 UDP(User Datagram Protocol)是一种无连…...
LeetCode 2682. 找出转圈游戏输家
【LetMeFly】2682.找出转圈游戏输家 力扣题目链接:https://leetcode.cn/problems/find-the-losers-of-the-circular-game/ n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i …...
数据结构单链表
单链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前,我们是写了顺序表,顺序表就是类似一个数组的东西࿰…...
自定义WEB框架结合Jenkins实现全自动测试
自定义WEB框架结合Jenkins实现全自动测试 allure生成 allure生成 1.allure–纯命令运行 -固定的–稍微记住对应的单词即可。2 安装,2个步骤: 1.下载allure包,然后配置环境变量。 https://github.com/allure-framework/allure2/releases/tag/2.22.4 2.在…...
PHP加密与安全的最佳实践
PHP加密与安全的最佳实践 概述 在当今信息时代,数据安全是非常重要的。对于开发人员而言,掌握加密和安全的最佳实践是必不可少的。PHP作为一种常用的后端开发语言,提供了许多功能强大且易于使用的加密和安全性相关函数和类。本文将介绍一些P…...
SQL Server数据库无法连接
问题如下: 原因:sql server服务器未开启 解决方法:以管理员身份打开cmd,输入:net start mssqlserver。...
腾讯云GPU服务器上,手把手教你5分钟搞定Isaac Sim 5.0环境(附VNC黑屏自救指南)
腾讯云GPU服务器5分钟极速部署Isaac Sim 5.0全攻略 在机器人仿真与AI训练领域,NVIDIA Isaac Sim已成为行业标杆工具。但许多开发者在云端部署时,往往耗费数小时甚至数天时间卡在环境配置环节。本文将基于腾讯云GPU服务器,分享一套经过实战验证…...
网易云音乐评论爬虫实战:破解加密接口抓取数据
一、接口分析:找准评论数据请求入口 在抓取网易云音乐歌曲评论时,我们不难发现,页面并不会随着翻页刷新跳转,评论的加载属于异步AJAX请求。这类接口有一个明显特点:接口地址固定不变,分页切换完全依靠请求载…...
HarfBuzz完全指南:如何理解字体渲染引擎的核心技术与字体子集化实践 [特殊字符]
HarfBuzz完全指南:如何理解字体渲染引擎的核心技术与字体子集化实践 🚀 【免费下载链接】harfbuzz HarfBuzz text shaping engine 项目地址: https://gitcode.com/gh_mirrors/ha/harfbuzz HarfBuzz是一个开源的文本整形引擎,专门处理复…...
从4.69万亿Token看中国AI大模型:调用量超越美国的背后逻辑
前言最近看到一组数据:截至2026年3月15日,中国AI大模型的周调用量达到4.69万亿Token,连续第二周超越美国,全球前三全部被中国模型包揽。作为一个长期关注AI行业的技术人,这个消息让我想深入挖一挖背后的逻辑࿱…...
春联生成模型-中文-base实战教程:对接企业微信机器人自动发春联
春联生成模型-中文-base实战教程:对接企业微信机器人自动发春联 春节将至,给同事、客户或社群成员发送一份AI生成的专属春联,是不是既新颖又有心意?手动一个个生成再发送,效率太低。今天,我们就来实战一个…...
5分钟掌握Google Drive受保护PDF下载:免费开源解决方案终极指南
5分钟掌握Google Drive受保护PDF下载:免费开源解决方案终极指南 【免费下载链接】Google-Drive-PDF-Downloader 项目地址: https://gitcode.com/gh_mirrors/go/Google-Drive-PDF-Downloader 还在为Google Drive中那些"仅查看"权限的PDF文件而烦恼…...
嵌入式开发必知:如何通过.text、.data和.bss段优化内存使用(附实例分析)
嵌入式开发实战:从.text到.bss的内存优化策略与案例分析 在资源受限的嵌入式系统中,内存优化从来不是可选项,而是生存法则。当你的MCU只有几十KB RAM,而产品功能需求却在不断膨胀时,对内存分区的深入理解就成为了区分普…...
Fusion 360 3D打印螺纹终极指南:告别打印失败,轻松创建完美螺纹
Fusion 360 3D打印螺纹终极指南:告别打印失败,轻松创建完美螺纹 【免费下载链接】CustomThreads Fusion 360 Thread Profiles for 3D-Printed Threads 项目地址: https://gitcode.com/gh_mirrors/cu/CustomThreads 在Fusion 360中设计3D打印螺纹时…...
OpenPose vs MediaPipe:人体姿态估计工具选型指南
OpenPose与MediaPipe:人体姿态估计技术选型实战指南 1. 技术选型的核心考量维度 在计算机视觉领域,人体姿态估计技术已经发展出多种解决方案,其中OpenPose和MediaPipe作为两大主流框架,各有其技术特点和适用场景。对于技术决策者…...
中创新航发布2025年度业绩:总收入444亿元同比增长60% 盈利能力跨越式提升
3月27日,中创新航(03931.HK)发布2025年度业绩公告。公告显示,公司全年总收入444.00亿元人民币,同比增长约60.0%;年内利润20.95亿人民币,同比增长约148.4%,盈利能力实现跨越式提升&am…...
