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工程
参考