electron调用第三方dll

571 阅读2分钟

记录winax、ffi-napi安装成功记录

环境配置

node -v
v16.20.2 **(Currently using 32-bit executable)**

电脑配置

操作系统名称	Microsoft Windows 11 专业版
版本	10.0.22621 版本 22621
系统类型	基于 x64 的电脑

.npmrc

msvs_version=2022
msbuild_path=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
registry=https://registry.npmjs.org/
python=C:\Python27\python.exe

使用的electron模板

切记:使用成熟的模板,不推荐自己手动搭建

electron-vite/electron-vite-vue: 🥳 Really simple Electron + Vite + Vue boilerplate. (github.com)

下载全局依赖

这里我是用的是PowerShell以管理员模式安装,后续依赖也可以直接在PowerShell中安装

首先安装node-gyp

npm i node-gyp -g
node高版本windows-build-tools已经集成,不需要安装

修改electron版本号为<21,因为高于这个版本v8会有内存隔离,导致dll无法动态加载

  1. 首先修改electron版本号为20.x,可以先删除electron依赖,使用npm i 安装成功后再使用npm i electron@20
  2. 确保npm run dev能成功运行
  3. npm i winax
  4. 如遇到安装错误可以删除.npmrc中的所有环境变量并重新安装winax
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH

在Windows环境变量中添加python2.7.15的路径

🔔🔔🔔我这里下载安装的是32位的Python,因为dll是32位的

image.png

安装完winax后接着下一步 npm i ffi-napi

这里不推荐一次性安装两个插件,会出现很多问题,如果package中有两个插件,可以删除,一个个安装

两个插件安装完成后在项目根目录下使用如下命令进行C++模块重新build

.\node_modules\.bin\electron-rebuild.cmd

如遇到无命令可用可以安装npm i electron-rebuild -D后重新执行即可

看下如下信息既表示模块重新构建成功

image.png

如遇到构建失败可尝试重新安装node-gyp

Error: Dynamic Linking Error: Win32 error 126
检查自己的dll路径是否正确,如不确定可使用全路径例如`D:\\code\\electron\\lib\\mydll.dll`测试使用

使用

@TODO:待补充

免注入动态调用dll

@TODO:待补充

32位打包使用

@TODO:待补充