electron-egg 打包win7系统桌面exe程序遇坑记录

electron-egg 打包win7系统桌面exe程序遇坑记录

electron-egg文档

准备环境

注意:项目安装目录一定不要有中文

  • 安装 visualStudio2017 下载C++相关插件
  • 安装 python3 的版本 (确保环境变量设置)

因dll文件是32位:

  • 安装 node@v12.18.3 32位版本
  • 在项目中通过npm 单独安装:
electron@11.5.0 32位版本
electron-builder: 22.10.5 
electron-rebuild: 3.2.5

我这不需要构建sqlite,所以删除了electron-egg相关依赖

调用dll文件
# 编译工具
npm i -g node-gyp

# C++构建工具
1. 管理员模式打开PowerShell
2. npm --vs2017 i -g --production windows-build-tools
或者 npm i -g --production windows-build-tools 

# 外部接口调用库
1. npm install ref-napi         // 基本类型
2. npm install ref-array-napi   // 数组类型
3. npm install ref-struct-napi  // 结构体类型
4. npm install ffi-napi         // 连接c代码和js代码

# 编译 ref-napi 库
1. cd ./node_modules/ref-napi
2. node-gyp configure  // 配置
3. node-gyp build			 // 编译

ffi-napi 相关使用网上一大堆教程。

使用中遇到的问题总结如下:

  1. Uncaught Error: Dynamic Linking Error: Win32 error 126
  • 该报错是由于dll文件位置不对引起的,文件路径是否和上面一样,否则您需要使用绝对路径。

  • 如果调用的时候还是报错,在代码中设置环境变量,process.env.PATH = ${process.env.PATH}${path.delimiter}${当前文件dll的绝对路径}

  1. Uncaught Error: Dynamic Linking Error: Win32 error 193
  • dll位数不对导致的,32位dll只能给32位程序使用,64位只能给64位程序使用,二者不可混合使用,检测下dll位数和node位数。
  1. Uncaught Error: Dynamic Linking Error: Win32 error 127
  • 该报错是由于在js中声明了c++中没有的方法导致的,请注意c++中暴漏的函数名(使用dumpbin可以查看dll文件信息)
  • 或者是当前dll引用了其他资源文件它没有加载成功(把dll文件引用的其他文件放在同级目录下)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值