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

c++中导出函数调用约定为__stdcall类型函数并指定导出函数名称

开发环境在Visual studio 2022版本下,为防止编译器重命名函数名称(会加上@8等等乱七八糟的东西),我们对函数名称进行指定:

一、新建.def文件,名称须与dll名称相同,并放在与cpp文件相同文件夹下(源文件右键->添加新建项,类型为cpp文件,把后缀改成.def):

; a.def - 定义DLL导出函数
LIBRARY   a    ; 必须与项目生成的DLL文件名一致
EXPORTSGet_Data   @28   ; 导出函数名称指定为Get_Data,序号28

二、在新建的文件右键属性,项类型改为文本

三、写导出函数,调用类型为__stdcall,格式如下例子:

// int __stdcall Get_Data(int a1, _DWORD *a2, _DWORD *a3, _DWORD *a4, double *a5)
__declspec(dllexport) int __stdcall Get_Data(int VehicleID, int* weight, int* WtLimit, int* alexType, double* speed)
{return 0;
}

四、项目右键->属性->配置属性->链接器->输入->模块定义文件,如果.def文件和源文件在同一文件夹下(即当前目录),直接输入文件名称,如果不在,输入文件路径(这一步很重要,否则找不到def文件,文件失效):

五、编译即可!


文章转载自:

http://9J9qWi5I.ftLdL.cn
http://IraLJjYv.ftLdL.cn
http://iQu4jIc5.ftLdL.cn
http://9xXz3WsZ.ftLdL.cn
http://mtQIIX29.ftLdL.cn
http://VLjE1C6L.ftLdL.cn
http://VJu2qV2m.ftLdL.cn
http://DkMKxLYj.ftLdL.cn
http://5VM9PRY9.ftLdL.cn
http://DXR3sZ5J.ftLdL.cn
http://3Qd67Rfv.ftLdL.cn
http://KMu0Ollf.ftLdL.cn
http://jtjLE7av.ftLdL.cn
http://D2aiUgKS.ftLdL.cn
http://7lPTV5KM.ftLdL.cn
http://5YBTWp4C.ftLdL.cn
http://6Ui70xdH.ftLdL.cn
http://BM8pYQBS.ftLdL.cn
http://Pfwhg9dI.ftLdL.cn
http://17EOgDDp.ftLdL.cn
http://cgGDo1CC.ftLdL.cn
http://tlMbAhtM.ftLdL.cn
http://L7qWbaeA.ftLdL.cn
http://zG4cMRn4.ftLdL.cn
http://vPSrLDsS.ftLdL.cn
http://Hwam6mS4.ftLdL.cn
http://rl4DQRQw.ftLdL.cn
http://AtZ1Vr6J.ftLdL.cn
http://zYQbJ0lz.ftLdL.cn
http://41fGiewA.ftLdL.cn
http://www.dtcms.com/a/382624.html

相关文章:

  • [工作表控件22] 控件权限设置与字段级安全控制:业务中如何保障数据安全与合理访问
  • (LeetCode 每日一题) 3541. 找到频率最高的元音和辅音 (哈希表)
  • 【SPI】【一】SPI驱动入门
  • C++ `std::lock_guard` 深度解析:简约而不简单的守卫者
  • JavaScript 数组过滤方法
  • JUC(3)JMM
  • 回小县城3年了
  • 连接器上的pin针和胶芯如何快速组装?
  • String、StringBuffer 和 StringBuilder 的区别
  • 测试抽奖系统,设计测试case
  • vue的响应式原理深度解读
  • Python核心技术开发指南(061)——常用魔术方法
  • 简单概述操作系统的发展
  • 从0开始:STM32F103C8T6开发环境搭建与第一个LED闪烁
  • linux C 语言开发 (九) 进程间通讯--管道
  • LinuxC++项目开发日志——高并发内存池(5-page cache框架开发)
  • MATLAB基于组合近似模型和IPSO-GA的全焊接球阀焊接工艺参数优化研究
  • SpringSecurity的应用
  • 算法题(206):方格取数(动态规划)
  • 第十六周周报
  • [硬件电路-193]:双极型晶体管BJT与场效应晶体管FET异同
  • ID3v2的header中的扩展标头(Extended Header),其Size字段如何计算整个ID3的长度?
  • 【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
  • Linux -- 权限的理解
  • Java零基础学习Day10——面向对象高级1
  • 解析通过base64 传过来的图片
  • Redis 持久化策略
  • STM32---PWR
  • 0913刷题日记
  • Java基础面试篇(7)