新建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);

新建vs 具有导出项的(DLL)动态链接库 工程 ,创建工程的方法和前一种一样
代码内容和上一个项目一样
声明和实现add方法


这里不用加 extern "C"
在项目上右键 -> 属性 ->

新建.def 文件

-> 添加新项

编写一下内容
- LIBRARY "TESTDLL3"
- EXPORTS
- add
其中第一行指定最终生成的dll的文件名,不带.dll后缀
第二行为关键词
第三行及以下指定导出的方法名
最后生成.dll文件

改动上一个aardio工程


参考