aardio 调用 vs 编写的dll (cdecl方式和stdcall方式)

cdecl方式

新建vs  具有导出项的(DLL)动态链接库  工程

 新建 add 方法的声明和实现

 

 改变 函数声明文件.h中的函数,以c函数的编译方法编译,否则用dll查看器查看可得到的函数名有其他字符,不能正常调用.

#ifdef __cplusplus
extern "C" {
#endif

//你的函数声明

#ifdef __cplusplus
}
#endif

 新建 aardio 控制台工程

 

//以cdecl方式调用加载的dll
var dll=raw.loadDll($"C:\Users\Administrator\source\repos\TestDll2\Debug\TESTDLL2.dll",,"cdecl") 


/*第一种调用方式
*/
//var int1 = dll.add(3,4);

/*第二种调用方式
*/
add = dll.api("add","int(int, int)");
result = add(1, 2);

 stdcall方式

新建vs  具有导出项的(DLL)动态链接库  工程 ,创建工程的方法和前一种一样

代码内容和上一个项目一样

声明和实现add方法

 

 这里不用加 extern "C"

在项目上右键 -> 属性 -> 

 新建.def 文件

 -> 添加新项

 编写一下内容

LIBRARY "TESTDLL3"
EXPORTS
add

其中第一行指定最终生成的dll的文件名,不带.dll后缀

第二行为关键词

第三行及以下指定导出的方法名

最后生成.dll文件

改动上一个aardio工程

 

参考

vs生成dll的学习 - aardio学习笔记-上位机开发

aardio调用dll - JavaShuo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值