electron 下使用node-ffi

关于为什么要使用ffi就不多说了,在electron中ffi的实际使用过程中遇到了一系列的问题,踩了不少坑,网上搜了好久也没见到好的解决方案。最终功夫不负有心人总算是解决掉了,现在将实际安装步骤写下来,希望能为后来者提供些许帮助。

写的比较简单,如果有疑问可以留言


各种环境软件以及版本

软件版本架构
系统win10x64
终端powershell-
nodejs8.9.3x86
electron3.0.3x86
python2.7.15x86

  1. 执行
npm install ffi
  1. 到github:https://github.com/node-ffi/node-ffi 下载下来源码,覆盖ffi目录
  2. 保证node-gyp环境已安装
npm install -g windows-build-tools
npm install -g node-gyp
  1. 到ffi和ref目录执行
node-gyp rebuild --arch=ia32 --dist-url=https://atom.io/download/atom-shell --runtime=electron --target=3.0.3

target 是electron版本号
arch 是系统架构 (x64)

  1. 编写dll
    注意不同位数electron要使用对应位数的dll
  2. js代码
const ffi = require('ffi');
const libm = ffi.Library(`${__dirname}/AINoteEncrypt`, {
  'add': [ 'int', [ 'int','int' ] ],
  'get_json_value': [ 'string', [ 'string','string' ] ],
  'create_table': [ 'int', [ 'int','int' ] ]
  
});


const ainote_encrypt = {
    add:(a,b)=>{
        return libm.add(a,b);
    }
}

module.exports = ainote_encrypt

7.常见异常

Error: Dynamic Symbol Retrieval Error: Win32 error 127
方法对不上,js的方法c++没有定义
Error: Dynamic Linking Error: Win32 error 193
dll 位数不对应,例如electron是32位的dll是64位的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值