electron使用ffi调用动态链接库dll

本文介绍了在Electron桌面应用开发中调用C++编写的动态链接库dll的方法。包括准备工作,如安装node - gyp、windows - build - tools、ffi并重新编译ffi源码;还给出了使用ffi链接dll的demo。此外,针对打包后运行报错问题,提供了在根目录创建.npmrc文件并添加相关代码的解决办法。

##方法1:调用动态链接库dll(c++写的) electron桌面应用开发下调用:

###1.1 准备工作 编译软件:(编译c++/c的插件) - 安装npm install -g node-gyp 管理员身份运行:

如果本机已经装过vs2017,会失败,不建议这样。

1.- npm install --global windows-build-tools 

(其实我本机已经装过,之前测试跑过node-gyp编译c#的环境已经成功,所以只需要走第二部即可,安装node-gyp地址在博客中:https://blog.youkuaiyun.com/lbn2676043895/article/details/89881180)

2- 安装ffi ``` npm install --save ffi ``` 注意:此时ffi不能使用需重新编译 ``` - 重新下载ffi源码:https://github.com/node-ffi/node-ffi,然后把项目下./node-modules/ffi目录中的内容清空替换为我们刚下载的源码。 - 然后依次进入ffi和ref目录下,手动执行node-gyp命令进行编译: node-gyp rebuild --arch=ia32 --dist-url=https://atom.io/download/electron --runtime=electron --target=3.0.7 --arch参数代表要编译的系统平台,ia32代表32位,x64代表64位 --target参数代表当前使用的electron版本号 ``` ###1.2 使用ffi链接dll demo:一个demo,快速入门 ``` var ffi = require('ffi'); var libm = ffi.Library('libm', { 'ceil': [ 'double', [ 'double' ] ] }); libm.ceil(1.5); ``` 1. 路径不对:window.__devices = // "extraResources": { // "from": "src/renderer/", // "to": "", // "filter": ["**/*","!**/*.js","!**/*.vue","!**/*.png","!**/*.scss","!**/idcard/*"] // }, , { from: path.join(__dirname, '../src/renderer'), to: path.join(__dirname, '../dist/electron/'), ignore: ['**/*.js','**/*.vue','**/*.scss','**/*.png','**/idcard/*.*'] }

上述成功运行后有一个小坑,在打包后运行依旧会报错终止运行,所以这里需要在根目录下创建一个.npmrc的文件,在里面添加此代码


# Electron 的版本。
set npm config --target=1.2.3
# Electron 的系统架构, 值为 ia32 或者 x64。
set npm config --arch=x64
# 下载 Electron 的 headers。
eset npm config --disturl=https://npm.taobao.org/mirrors/atom/
# 告诉 node-pre-gyp 我们是在为 Electron 生成模块。
set npm config --runtime=electron
 

如此就可以成功打包并运行了

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值