当前位置:   article > 正文

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

aardio 编译dll

cdecl方式

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

 新建 add 方法的声明和实现

 

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

  1. #ifdef __cplusplus
  2. extern "C" {
  3. #endif
  4. //你的函数声明
  5. #ifdef __cplusplus
  6. }
  7. #endif

 新建 aardio 控制台工程

 

  1. //以cdecl方式调用加载的dll
  2. var dll=raw.loadDll($"C:\Users\Administrator\source\repos\TestDll2\Debug\TESTDLL2.dll",,"cdecl")
  3. /*第一种调用方式
  4. */
  5. //var int1 = dll.add(3,4);
  6. /*第二种调用方式
  7. */
  8. add = dll.api("add","int(int, int)");
  9. result = add(1, 2);

 stdcall方式

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

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

声明和实现add方法

 

 这里不用加 extern "C"

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

 新建.def 文件

 -> 添加新项

 编写一下内容

  1. LIBRARY "TESTDLL3"
  2. EXPORTS
  3. add

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

第二行为关键词

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

最后生成.dll文件

改动上一个aardio工程

 

参考

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

aardio调用dll - JavaShuo

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50939
推荐阅读
相关标签
  

闽ICP备14008679号