caijiEmber 2024-04-12 17:33 采纳率: 100%
浏览 27
已结题

Electron调用Dll文件

Electron调用Dll文件Error:Dynamic Linking Error: Win32 error 126 at new DynamicLibrary

我的node版本是16.20.1
python版本是3.11.2
然后VS用的2022,同时我得环境变量是
registry=https://registry.npm.taobao.org/
node_gyp=C:\Program Files\nodejs\node_modules\node-gyp\bin\node-gyp.js
msvs_version=2022
python=C:\Users\86188\AppData\Local\Programs\Python\Python311\python.exe
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/
不知道有没有问题,最开始下载gyp就开始一直报错,各种错误,又是版本的问题,又是python环境之类的问题,总之现在可以把
gyp和ffi-napi下载到项目中了,并且运行打包都可以,然后就调用DLL,出现了问题

img


非常常规的一个代码

img

就显示Electron调用Dll文件Error:Dynamic Linking Error: Win32 error 126 at new DynamicLibrary错误
并且路径也没有问题,DLL文件也没有问题,我又换了绝对路径之类的,还是报错

  • 写回答

3条回答 默认 最新

  • GISer Liu 2024-04-12 18:30
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    首先,你遇到的问题是 Electron 调用 DLL 文件时出现了 Dynamic Linking Error,具体是 Win32 error
    126。这个错误通常表示找不到或者无法加载所需的 DLL 文件。
    针对这个问题,我建议你按照以下步骤进行排查和解决:

    1. 确认 DLL 文件路径

    确保 DLL 文件路径是正确的。你已经尝试了绝对路径,但仍然出现了问题。可以再次确认一下路径是否正确,包括文件名是否拼写正确。

    2. 检查 DLL 文件是否完整

    确保 DLL 文件是完整的,没有损坏。你可以尝试在其他程序中调用这个 DLL 文件,看看是否能够正常加载。

    3. 确认 DLL 文件是否与 Electron 版本兼容

    有时候 DLL 文件可能与 Electron 的版本不兼容,导致加载错误。你可以查看一下 Electron 的文档,确认一下当前使用的 Electron
    版本是否支持你要调用的 DLL 文件。

    4. 检查依赖项

    DLL 文件可能有依赖于其他 DLL 文件或者运行库,确保这些依赖项都已经安装并且可用。你可以使用工具如 Dependency Walker 来检查 DLL
    文件的依赖项。

    5. 检查权限问题

    确保 Electron 有足够的权限来读取和加载 DLL 文件。有时候权限问题会导致加载失败。

    6. 尝试使用其他加载方式

    除了直接调用 DLL 文件外,你还可以尝试使用 Node.js 的 ffi 模块来加载 DLL 文件,看看是否能够解决问题。

    7. 日志和调试

    在 Electron 应用中输出详细的日志,尝试捕获更多的错误信息。你可以使用 Electron
    提供的开发者工具或者其他日志库来输出日志,从而更好地理解问题所在。

    8. 与社区交流

    如果以上方法都无法解决问题,可以尝试在 Electron 的社区论坛或者 GitHub 上提问,或许其他开发者已经遇到类似的问题并且有解决方案。
    综上所述,你可以按照以上步骤逐一排查,希望能够解决你遇到的 DLL 文件加载问题。如果有其他疑问或者需要进一步的帮助,请随时提问。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画