首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Electron——常见动态链错误

Electron——常见动态链错误

作者头像
思索
发布2024-08-16 14:51:56
发布2024-08-16 14:51:56
3310
举报

前言

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

内容

Uncaught Error: Dynamic Linking Error: Win32 error 126

  • DLL引用的路径错误,检查下DLL的路径是否正确
代码语言:javascript
复制
// 正确示例
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
代码语言:javascript
复制
// 正确示例
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) 函数查看器下载地址
代码语言:javascript
复制
// 正确示例
const User32 = ffi.Library('user32.dll', {
  GetTopWindow: ['long', ['long']],
  GetWindowThreadProcessId: ['int', ['long', 'int']],
  GetForegroundWindow: ['long', []],
  IsHungAppWindow: ['bool', ['long']]
})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 内容
    • Uncaught Error: Dynamic Linking Error: Win32 error 126
    • Uncaught Error: Dynamic Linking Error: Win32 error 193
    • Uncaught Error: Dynamic Linking Error: Win32 error 127
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档