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

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)icon-default.png?t=N6B9https://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.字符设备驱动开发模板&#xff08;包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区&#xff09;_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序的代码存在不少弊端&#xff1a;移植性差…...

深度学习中的python语法笔记总结

解释 torch中的 .clamp(min0) 在PyTorch中&#xff0c;torch.clamp将张量中的元素限制在指定的范围内。 torch.clamp(min0)会将张量中的每个元素与0进行比较&#xff0c;并将小于0的元素替换为0。其他大于等于0的元素则保持不变。 clamp函数原理 def clamp(x, lower, upper)…...

Reids 的整合使用

大家好 , 我是苏麟 , 今天带来强大的Redis . REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选…...

Vue3 —— watchEffect 高级侦听器

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 Vue3 中新增了一种特殊的监听器 watchEffect&#xff0c;它的类型是&#xff1a; function watchEffect(effect: (onCleanup: OnCleanup) > void,o…...

Java异步子线程读取主线程参数的若干好玩场景

在开发过程中&#xff0c;我们难免会因为性能、实时响应等&#xff0c;需要异步处理的一些事务&#xff0c;并且在子线程中有时我们还需要获取主线程相关的参数。下面有若干方案可以实现上述场景&#xff0c;但会出现一定的问题。 场景1-基础场景 在主线程中开启子线程&#x…...

Android 视频开发

在 Android 平台上进行视频开发&#xff0c;您需要掌握以下关键知识点&#xff0c;以确保能够成功地开发和调试视频应用程序&#xff1a; Android视频架构&#xff1a; 了解 Android 的视频系统架构&#xff0c;包括视频捕获、编码、解码、渲染和显示等。 视频格式和编解码&am…...

【计算机网络篇】UDP协议

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; UDP协议 1&#xff0c;UDP 简介 UDP&#xff08;User Datagram Protocol&#xff09;是一种无连…...

LeetCode 2682. 找出转圈游戏输家

【LetMeFly】2682.找出转圈游戏输家 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-the-losers-of-the-circular-game/ n 个朋友在玩游戏。这些朋友坐成一个圈&#xff0c;按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i …...

数据结构单链表

单链表 1 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前&#xff0c;我们是写了顺序表&#xff0c;顺序表就是类似一个数组的东西&#xff0…...

自定义WEB框架结合Jenkins实现全自动测试

自定义WEB框架结合Jenkins实现全自动测试 allure生成 allure生成 1.allure–纯命令运行 -固定的–稍微记住对应的单词即可。2 安装&#xff0c;2个步骤: 1.下载allure包&#xff0c;然后配置环境变量。 https://github.com/allure-framework/allure2/releases/tag/2.22.4 2.在…...

PHP加密与安全的最佳实践

PHP加密与安全的最佳实践 概述 在当今信息时代&#xff0c;数据安全是非常重要的。对于开发人员而言&#xff0c;掌握加密和安全的最佳实践是必不可少的。PHP作为一种常用的后端开发语言&#xff0c;提供了许多功能强大且易于使用的加密和安全性相关函数和类。本文将介绍一些P…...

SQL Server数据库无法连接

问题如下&#xff1a; 原因&#xff1a;sql server服务器未开启 解决方法&#xff1a;以管理员身份打开cmd&#xff0c;输入&#xff1a;net start mssqlserver。...

腾讯云GPU服务器上,手把手教你5分钟搞定Isaac Sim 5.0环境(附VNC黑屏自救指南)

腾讯云GPU服务器5分钟极速部署Isaac Sim 5.0全攻略 在机器人仿真与AI训练领域&#xff0c;NVIDIA Isaac Sim已成为行业标杆工具。但许多开发者在云端部署时&#xff0c;往往耗费数小时甚至数天时间卡在环境配置环节。本文将基于腾讯云GPU服务器&#xff0c;分享一套经过实战验证…...

网易云音乐评论爬虫实战:破解加密接口抓取数据

一、接口分析&#xff1a;找准评论数据请求入口 在抓取网易云音乐歌曲评论时&#xff0c;我们不难发现&#xff0c;页面并不会随着翻页刷新跳转&#xff0c;评论的加载属于异步AJAX请求。这类接口有一个明显特点&#xff1a;接口地址固定不变&#xff0c;分页切换完全依靠请求载…...

HarfBuzz完全指南:如何理解字体渲染引擎的核心技术与字体子集化实践 [特殊字符]

HarfBuzz完全指南&#xff1a;如何理解字体渲染引擎的核心技术与字体子集化实践 &#x1f680; 【免费下载链接】harfbuzz HarfBuzz text shaping engine 项目地址: https://gitcode.com/gh_mirrors/ha/harfbuzz HarfBuzz是一个开源的文本整形引擎&#xff0c;专门处理复…...

从4.69万亿Token看中国AI大模型:调用量超越美国的背后逻辑

前言最近看到一组数据&#xff1a;截至2026年3月15日&#xff0c;中国AI大模型的周调用量达到4.69万亿Token&#xff0c;连续第二周超越美国&#xff0c;全球前三全部被中国模型包揽。作为一个长期关注AI行业的技术人&#xff0c;这个消息让我想深入挖一挖背后的逻辑&#xff1…...

春联生成模型-中文-base实战教程:对接企业微信机器人自动发春联

春联生成模型-中文-base实战教程&#xff1a;对接企业微信机器人自动发春联 春节将至&#xff0c;给同事、客户或社群成员发送一份AI生成的专属春联&#xff0c;是不是既新颖又有心意&#xff1f;手动一个个生成再发送&#xff0c;效率太低。今天&#xff0c;我们就来实战一个…...

5分钟掌握Google Drive受保护PDF下载:免费开源解决方案终极指南

5分钟掌握Google Drive受保护PDF下载&#xff1a;免费开源解决方案终极指南 【免费下载链接】Google-Drive-PDF-Downloader 项目地址: https://gitcode.com/gh_mirrors/go/Google-Drive-PDF-Downloader 还在为Google Drive中那些"仅查看"权限的PDF文件而烦恼…...

嵌入式开发必知:如何通过.text、.data和.bss段优化内存使用(附实例分析)

嵌入式开发实战&#xff1a;从.text到.bss的内存优化策略与案例分析 在资源受限的嵌入式系统中&#xff0c;内存优化从来不是可选项&#xff0c;而是生存法则。当你的MCU只有几十KB RAM&#xff0c;而产品功能需求却在不断膨胀时&#xff0c;对内存分区的深入理解就成为了区分普…...

Fusion 360 3D打印螺纹终极指南:告别打印失败,轻松创建完美螺纹

Fusion 360 3D打印螺纹终极指南&#xff1a;告别打印失败&#xff0c;轻松创建完美螺纹 【免费下载链接】CustomThreads Fusion 360 Thread Profiles for 3D-Printed Threads 项目地址: https://gitcode.com/gh_mirrors/cu/CustomThreads 在Fusion 360中设计3D打印螺纹时…...

OpenPose vs MediaPipe:人体姿态估计工具选型指南

OpenPose与MediaPipe&#xff1a;人体姿态估计技术选型实战指南 1. 技术选型的核心考量维度 在计算机视觉领域&#xff0c;人体姿态估计技术已经发展出多种解决方案&#xff0c;其中OpenPose和MediaPipe作为两大主流框架&#xff0c;各有其技术特点和适用场景。对于技术决策者…...

中创新航发布2025年度业绩:总收入444亿元同比增长60% 盈利能力跨越式提升

3月27日&#xff0c;中创新航&#xff08;03931.HK&#xff09;发布2025年度业绩公告。公告显示&#xff0c;公司全年总收入444.00亿元人民币&#xff0c;同比增长约60.0%&#xff1b;年内利润20.95亿人民币&#xff0c;同比增长约148.4%&#xff0c;盈利能力实现跨越式提升&am…...