当前位置:   article > 正文

aardio 调用 vs 编写的dll (stdcall方式) (dll又调用另一个dll)_aardio 调用dll

aardio 调用dll

需要复用 aardio 调用 vs 编写的dll (cdecl方式和stdcall方式)_qq_31683775的博客-CSDN博客 文章 stdcall方式 生成的.lib和.dll 文件 ,以及工程中的.h文件

 

 新建 vs 工程 

 删除自动生成的示例发放,添加fadd方法的声明和实现

 

 复制 .lib和.dll 文件 .h文件 到工程目录

 将 vs 工程 默认的cdecl方式改为stdcall方式 

右键工程 -> 属性 -> 

右键工程 -> 新建项  编辑新建的文件

  1. LIBRARY "INCLUDEDLLTEST"
  2. EXPORTS
  3. fadd

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

第二行为关键词

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

生成dll

新建aardio 控制台工程

将本次生成的dll文件和本次dll 依赖的dll文件都复制到 aardio工程的dll文件夹

 调用dll

  1. import console;
  2. console.setTitle("aardio工程2");
  3. /*
  4. 启动参数键值对前导字符可以为 / - ,前导字符可重复多次。
  5. 键值对可以空格分开,也可用等号分开,例如: "/opt test" "-opt test" "--opt test""/opt=test"
  6. */
  7. if(_ARGV.opt == "test"){
  8. console.dump(_ARGV.opt,_ARGV[#_ARGV]) //_ARGV 既包含命名参数组成的键值对,也包含按参数顺序组成的数组
  9. }
  10. var str = console.getText("请输入一行文本,然后回车:");
  11. console.log("您输入的是" ,str );
  12. var dll=raw.loadDll("\dll\INCLUDEDLLTEST.dll",,"stdcall")
  13. var int1 = dll.fadd();
  14. console.log(int1);
  15. console.pause();

运行

打包生成aardio工程

复制

dll文件夹到.exe同级目录

运行exe

 

dll与dll相互调用的时候,注意不能混合调用,也就是

cdecl方式的dll不能调用stdcall方式的dll

stdcall​​​​​​​方式的dll不能调用cdecl方式的dll

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

闽ICP备14008679号