Electron——常见动态链错误

简介: Electron——常见动态链错误

前言

记录一下常见的动态连错误;

内容

Uncaught Error: Dynamic Linking Error: Win32 error 126

  • DLL引用的路径错误,检查下DLL的路径是否正确
// 正确示例
let DllA = path.resolve(__dirname, '../../../xxx/xxxx.dll')
// 生产环境
if (process.env.NODE_ENV !== 'development') {
  DllA = path.resolve(__dirname, '../../../../xxx/xxx' + arch + '.dll')
  DllB = path.resolve(__dirname, '../../../../xxx/xxxx.dll')
}

Uncaught Error: Dynamic Linking Error: Win32 error 193

  • DLL位数不对,根据系统来确定使用x86还是x64,可通过os进行判断引入相应的DLL
// 正确示例
const arch = os.arch() === 'x64' ? 'x64' : 'x86'
let DllA = path.resolve(__dirname, '../../../xxx/xxx' + arch + '.dll')
if (process.env.NODE_ENV !== 'development') {
  DllA = path.resolve(__dirname, '../../../../xxx/xxx' + arch + '.dll')
}

Uncaught Error: Dynamic Linking Error: Win32 error 127

  • DLL没有对应的函数或函数定义错误,可以使用函数查看器进行查看
  • DLL错误,比如系统的一些DLL可以直接进行引用或者还需要引用其他的DLL文件(如: 引入A,但是A需要引入B)
    函数查看器下载地址
// 正确示例
const User32 = ffi.Library('user32.dll', {
  GetTopWindow: ['long', ['long']],
  GetWindowThreadProcessId: ['int', ['long', 'int']],
  GetForegroundWindow: ['long', []],
  IsHungAppWindow: ['bool', ['long']]
})

学无止境,谦卑而行.

目录
打赏
0
0
0
0
67
分享
相关文章
你真的了解 Electron 的自动更新吗?揭秘AppUpdater 类的内部工作原理
本文由前端徐徐首发,深入探讨了 Electron 的自动更新工作原理,特别是 `electron-builder` 中 `AppUpdater` 类的源码分析,涵盖配置更新源、检查更新、下载更新、安装更新及事件通知等核心功能,帮助开发者更好地理解和使用 Electron 的自动更新机制。
324 0
你真的了解 Electron 的自动更新吗?揭秘AppUpdater 类的内部工作原理
以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!
以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!
安全开发-PHP应用&模版引用&Smarty渲染&MVC模型&数据联动&RCE安全&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
安全开发-PHP应用&模版引用&Smarty渲染&MVC模型&数据联动&RCE安全&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
< 封装公共导出模块:配合element实现提示 >
在 Vue + elementUi 开发中,我们偶尔会遇到需要导出的列表,或者指定位置的导出内容。在一个项目里面是十分常见的,但是由于导出代码有稍微有点长,不方便维护!基于项目开发需求,封装了一个公用的导出模块,模块入口提供了 四个参数,分别是:导出接口地址导出参数对象导出文件名称导出时选择的服务地址(需要配合config文件实现选择功能)。且基于信息安全问题,实现信息提示,当提示点击遵守规则才允许下载文件!
3500/42 GE / 本特利内华达 带内部屏障和内部终端的I/O模块
3500/42 GE / 本特利内华达 带内部屏障和内部终端的I/O模块
9月开发者日回顾|小程序跳转接口等多个JSAPI更新,能力集成提供场景化排查工具
9月开发者日回顾|小程序跳转接口等多个JSAPI更新,能力集成提供场景化排查工具
86 0
[NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)
[NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)
288 1
要不要来看看浏览器视图更新的底层规则?
大家在操作原生的 DOM 的时候,有没有遇到过这样一个问题,就是我修改了 DOM 的属性,但是浏览器并没有立即更新视图,而我们开发者为了获取这次更新的结果,通常会使用 setTimeout 这样的方法
136 0
要不要来看看浏览器视图更新的底层规则?
前端学习案例15-HMR(热模块更新)
前端学习案例15-HMR(热模块更新)
101 0
前端学习案例15-HMR(热模块更新)
Flutter框架对热重载在项目里的深度运用,状态热重新加载以及静态字段被延迟初始化【Flutter】
Flutter框架对热重载在项目里的深度运用,状态热重新加载以及静态字段被延迟初始化【Flutter】