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

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

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

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

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

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

cpp 复制代码
// 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文件,文件失效):

五、编译即可!

相关推荐
曹牧1 小时前
Java:处理 HTTP 请求的 Content-Type
java·开发语言
itzixiao1 小时前
L1-066 猫是液体(5分)[java][python]
java·开发语言·python·算法
Lightning-py2 小时前
Python 配置日志(Logging)
开发语言·python
隔窗听雨眠2 小时前
MySQL主从延迟根因诊断法
开发语言·php
Hui_AI7202 小时前
基于RAG的农产品GEO溯源智能问答系统实现
开发语言·网络·人工智能·python·算法·创业创新
CDwenhuohuo2 小时前
前端文件预览
开发语言·前端·javascript
charlie1145141912 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
IT猿手2 小时前
SCI一区:章鱼优化算法(Octopus Optimization Algorithm, OOA)求解23个测试函数,出图丰富,提供完整MATLAB代码
开发语言·算法·matlab
程序员JerrySUN2 小时前
Jetson边缘嵌入式实战课程第二讲:JetPack 和 SDK Manager 是什么
c语言·开发语言·网络·udp·音视频
不知名的老吴2 小时前
后端知识点:Python处理加权点赞
开发语言·python