首页 新闻 会员 周边

Electron-vue项目中,如何使用 node-ffi 调用这种的 C++ 开发的 dll 接口

0
悬赏园豆:100 [已解决问题] 解决于 2022-08-25 15:32

Electron-vue项目中,如何使用 node-ffi 调用这种的 C++ 开发的 dll 接口

最近因为项目接触到这种技术,在从node中调用dll接口时,因为接口的不同,无从下手,网上查遍了,也不知道怎么去进行调用,希望各位大神能指导下。谢谢!

问题补充:

嘿丶给你一块饼干的主页 嘿丶给你一块饼干 | 初学一级 | 园豆:102
提问于:2022-03-11 16:03

有大佬了解的可以留下联系方式,有偿请教大佬,wx:15223293770

嘿丶给你一块饼干 2年前
< >
分享
最佳答案
0

不确定你的sdk到底是不是c++,但不管是不是最可靠的方式是用ffi调用c,可以分几个步骤,可以使问题更简单。

  1. 第一个步骤是用c写一个helloworld程序到处lib后让node.ffi调用,保证你调用c没问题
  2. 分装一个c的库区调用你的那个c++的api,此过程不用node参与,确保次步骤没问题后
  3. 1,2两步都ok后把两步和在一起用node.ffi调用你c导出的lib

不确定你是否熟悉c/c++,多说几句。导出lib的时候记得使用extern "C",使用C的abi格式。c++的abi规范不同意,一般ffi都难以直接调用c++导出的东西,c++不同编译的库相互调用也得借助c方式。

收获园豆:100
周文靖 | 菜鸟二级 |园豆:304 | 2022-07-19 10:39

谢谢大佬的回答,我刚开始也是按照网上教程写了一个c++的demo,用的是普通的数据格式,能够成功调用;
但是用到项目中,是使用的其他厂家的sdk,主要给C#和JAVA调用的,所以其中用到一些引用类型的变量后,node通过ffi来调用就会出现各种问题;
目前已经不准备通过node来调用了,因为涉及到好多不同的厂家,他们给的sdk也都不太一致,所以还是决定采纳其他技术来进行对接,之前的就当作学习了;
最后谢谢大佬的回答!!!

嘿丶给你一块饼干 | 园豆:102 (初学一级) | 2022-07-19 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册