electron调用dll文件

这篇具有很好参考价值的文章主要介绍了electron调用dll文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Electron 对系统层能力的使用可能比较弱,此时需要求助 Python、C++、C# 等语言,通过 ffi-napi 库可以让 Node.js 使用 C++ dll,通过 electron-edge-js 库可以让 Node.js 使用 C# dll

1. 先确定dll文件是用什么语言写的.

使用peid 应用查看- 这个是exe文件运行在windows电脑上.

2.软件查看结果,可以看到用的是c++ 开发的

electron调用dll文件

查看nodejs是多少位

windows下: 打开cmd 输入命令 node 在输入process
electron调用dll文件

3. 使用关键的库 ffi-napi 加上 ref-napi 调用dll

安装: https://github.com/node-ffi-napi/node-ffi-napi

npm install ffi-napi
npm install ref-napi
npm install ref-array-napi
npm install ref-array

如果出现安装报错

                errorOut=warning ..\..\..\..\..\package.json: No license field
gyp info it worked if it ends with ok
gyp info using node-gyp@9.1.0
gyp info using node@16.18.0 | win32 | x64
gyp info find Python using Python version 3.9.12 found at "C:\ProgramData\Miniconda3\python.exe"
gyp info find VS using VS2022 (17.3.32929.385) found at:
gyp info find VS "C:\Program Files\Microsoft Visual Studio\2022\Community"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\ProgramData\Miniconda3\python.exe
gyp info spawn args [
gyp info spawn args   'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'msvs',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\liuda\\Documents\\GitHub\\pos-electron\\node_modules\\ref-napi\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\liuda\\.electron-gyp\\14.0.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\liuda\\.electron-gyp\\14.0.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\liuda\\\\.electron-gyp\\\\14.0.0\\\\<(target_arch)\\\\node.lib',
gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\liuda\\Documents\\GitHub\\pos-electron\\node_modules\\ref-napi',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'C:\\Users\\liuda\\Documents\\GitHub\\pos-electron\\node_modules\\ref-napi\\build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' in binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:284:16)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
gyp ERR! System Windows_NT 10.0.19042
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\liuda\Documents\GitHub\pos-electron\node_modules\ref-napi
gyp ERR! node -v v16.18.0
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok
error Command failed with exit code 1.

                command='C:\Program Files\nodejs\node.exe' 'C:\Users\liuda\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js' run install
                workingDir=C:\Users\liuda\Documents\GitHub\pos-electron\node_modules\ref-napi

mac解决方案:

使用命令 xcode-select --install 解决问题

windwos解决方案

使用命令

// 以管理员身份运行终端执行命令
npm install --global --production windows-build-tools

安装好后继续使用上面的命令安装两个第三方库

windows环境(我用的虚拟机virtual box):

安装vs studio 桌面版C++

安装node 里面有个C++选项需要给选上

yarn build 打包报错:
全局安装cnpm
npm config set registry http://registry.npm.taobao.org/
npm i cnpm

安装windows平台编译环境

安装windows-build-tools

https://blog.csdn.net/weixin_46261309/article/details/105456830

virtualBox 复制粘贴功能

https://blog.csdn.net/weixin_41278720/article/details/79101590

其他

C# 安装 读取dll文件
项目地址 https://github.com/agracio/electron-edge-js
electron-edge-js

npm install electron-edge-js文章来源地址https://www.toymoban.com/news/detail-424300.html

到了这里,关于electron调用dll文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【electron】Puppeteer 和 Electron 共用同一个Chrome 或 Chromium浏览器二进制文件

    将 Puppeteer 的可执行路径设置为 Electron 的可执行路径来实现这一点 以下是一个示例代码,展示了如何在 Puppeteer 中使用 Electron 的浏览器二进制文件: 在上述代码中,你需要将 executablePath 变量设置为 Electron 的可执行路径。然后,在启动 Puppeteer 时,将 executablePath 设置为 laun

    2024年02月10日
    浏览(51)
  • 「Electron|问题记录」解决应用调用loadURL访问没有ssl证书的http网址连接失败的问题

    本文主要记录在使用electron访问http网址(非https)时,应用窗口不显示网页,命令行提示 handshake failed; returned -1, SSL error code 1, 在electron的入口函数中,创建了一个窗口,然后使用 loadURL 加载一个互联网上的网页,代码如下: 使用 npm start 运行之后,窗口创建完成,但是内容为

    2024年02月16日
    浏览(46)
  • 前端(Electron Nodejs)如何读取本地配置文件

    使用electron封装了前端界面之后,最终打包为一个客户端(exe)。但是,最近项目组内做CS(c++开发)的,想把所有的配置都放进安装目录的配置文件中(比如config.json)。这做法,对于纯前端而言有点难以接收。 第一,纯前端不允许读取本地文件。就这一条,直接封死所有的

    2024年02月16日
    浏览(51)
  • 【Electron】使用electron-builder打包时下载electron失败或慢的解决方案

    问题描述 electron-builder打包时报错信息如下: 解决 该问题是因为electron包需要翻墙获得,需要全局代理,但是太麻烦,我们一般是修改镜像源 在项目根目录下创建.npmrc文件,并且输入以下配置:

    2024年02月11日
    浏览(43)
  • Electron 系统托盘图标

    一、在入口文件electron.js中引入 Tray , Menu , nativeImage 二、在初始化完成后添加图片

    2024年02月12日
    浏览(39)
  • Electron-React18-MacOS桌面管理系统|electron27+react仿mac桌面

    基于 React18+Electron27+ArcoDesign 仿macOS桌面端系统框架 ElectronMacOS 。 electron-react-macOs 基于 electron27.x+vite4+react18+arcoDesign+zustand 等技术构建桌面版仿MacOs框架系统解决方案。支持 中英文/繁体、dark+light主题、桌面多层级路由、多窗口路由页面、动态换肤、Dock悬浮菜单 等功能。 Elec

    2024年02月05日
    浏览(34)
  • Electron 系统通知 Notification 实践指南

    系统通知是桌面应用的常见功能,用于给用户发送提醒(刷下存在感 🙂),还能帮定点击事件以便后续的操作。 Electron 自带通知模块,下方代码是一个简单的示例 我们看看运行效果(OS 为 windows 11 家庭中文版) 这看起来还不错,不过在 windows 10 下会遭遇滑铁卢😂,通知无

    2024年02月15日
    浏览(39)
  • 【electron+axios】如何在electron中封装使用axios,从下载到使用保姆级教程

    前期准备:我们需要搭建好electron项目,并配置好node,npm等环境后进行以下操作。如何搭建electron项目?请参考此章节:electron项目的搭建并集成串口工具 一、准备工作,下载axios依赖并在页面中引用 1.下载axios 与vue同样的,都是使用npm下载依赖后进行引入。代码如下 2.引用

    2024年03月27日
    浏览(43)
  • Electron学习2 使用Electron-vue和Vuetify UI库

    Electron-Vue 是一个使用 Vue.js 构建跨平台桌面应用程序的框架。它基于 Electron,一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的开源库。 Electron-Vue 结合了 Vue.js 的灵活性和 Electron 的跨平台能力,使得开发桌面应用程序变得更加简单和高效。以下是一些 Electron-Vue 的主要

    2024年02月11日
    浏览(34)
  • 【Electron将HTML项目打包成桌面应用exe文件】

    1、初始化 此时项目多出一个package.json文件。 2、在根目录下新建main.js 3、安装electron 4、配置package的js文件 5、打包执行以下命令,此时会输出文件夹/out,找到exe文件就是打包程序的快捷方式,但是还没结束。我们只是通过electron-packager,将electron应用打包成可执行exe,我们还

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包