当前位置: 首页 > news >正文

[electron]开发环境驱动识别失败

记一次错误回顾,在硬件调试阶段初始化需要加载驱动文件,我把驱动文件放在根目录的bin文件夹下。在开发环境里始终无法识别,而在打包构建后识别正常。
排除了bin路径不对(我已传入绝对路径并判断文件是否存在

const dllPath = this.findLibSignPath();MyLog.log("dllPath:", dllPath);// 检查DLL文件是否存在if (!require("fs").existsSync(dllPath)) {MyLog.error("DLL文件不存在:", dllPath);return { success: false, message: `DLL文件不存在: ${dllPath}` };}

也将驱动路径加入到path变量里

// 将DLL所在目录添加到PATH环境变量中,这样TabletDriver就能找到DLLconst dllDir = path.dirname(dllPath);const currentPath = process.env.PATH || "";if (!currentPath.includes(dllDir)) {process.env.PATH = `${dllDir};${currentPath}`;MyLog.log("已将DLL目录添加到PATH:", dllDir);}

也用管理员的方式启动了vscode
同时用Dependencies工具检查了dll文件,没有依赖第三方dll。
甚至在初始化的时候设置process.chdir(path.dirname(dllPath));
以上方法都没用,依然在开发环境里识别失败,只有打包好后才正常。
所以问题出在window查找dll路径的问题上,在打包后dll会一并打包到exe里,所以它会直接找到。
所以我尝试将dll放到node_modules/electron/dist里,神奇的事情发生了,此时能正常识别到了。

// 开发环境加载bin/dll驱动文件会失败,也不是失败,而是驱动 DLL 内部并不是只靠你传进去的绝对路径,而是它自己还会 LoadLibrary("xxx.dll") 或做相对路径依赖解析。if (!app.isPackaged) {// 将all文件拷贝到nodule_modules/electron/dist目录下const electronDistDir = path.dirname(process.execPath);const targetPath = path.join(electronDistDir, "libSign_x64.dll");if (!fs.existsSync(targetPath)) {fs.copyFileSync(dllPath, targetPath);}}
http://www.dtcms.com/a/350398.html

相关文章:

  • 深度学习篇--- ResNet-18
  • ArXiv 每日论文追踪器:自动检索、双语总结、邮件推送、一键建站
  • QML 中 的 Row 和 RowLayout
  • (一)C#基础(异步)
  • 数字图像处理(二)
  • 面向机器人推动与抓取任务自适应算法研究
  • langchain的简单应用案例---(2)使用Memory实现一个带记忆的对话机器人
  • 工作记录 2015-10-29
  • 销售额和营业收入的区别在哪?哪个值应该更大一些?
  • 新项目,如何做成本估算?
  • 本地缓存与 Redis 缓存的区别与实际应用
  • 【OpenAI】ChatGPT-4o-latest 真正的多模态、长文本模型的详细介绍+API的使用教程!
  • 2025软件测试面试题(持续更新)
  • 07-JUnit测试
  • ubuntu 卡到登录页面进不去--实测
  • 陪护系统有哪些功能?
  • 高并发内存池(4)-TLS:Thread Local Storage
  • Vue.nextTick讲解
  • kubectl 客户端访问 Kubernetes API Server 不通的原因排查与解决办法
  • 800G时代!全场景光模块矩阵解锁数据中心超高速未来
  • AR眼镜赋能矿业冶金数字化转型
  • Wireshark笔记-DHCP流程与数据包解析
  • Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
  • SQLite 全面指南与常用操作
  • 没有AI背景的团队如何快速进行AI开发
  • expdp导出dmp到本地
  • docker 安装配置 redis
  • PDF处理控件Spire.PDF系列教程:在 C# 中实现 PDF 与字节数组的互转
  • 2025年06月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • synchronized关键字的底层原理