Electron 调用 原生代码的正确打开方式,不是ffi!

electron+vue+elementui+js实现启动本地exe 阅读详情

我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。

electron 很不错,可以实现跨平台应用的开发,但是如果需要跟硬件交互就显得欠缺了,好在 electron 实际上是 node js + html + css,而 nodejs 想要调用本地代码还是可以实现的。我也是基于这个想法去做的,但是遇到了一堆的问题。
在这里插入图片描述
我们知道,nodejs 主要使用 ffi 实现调用原生代码,这点毋庸置疑,而 Electron 你想使用 ffi 却不行,实际上,electron 需要较高版本的 nodejs 而 ffi 却不支持高版本 nodejs,笔者这里是 nodejs 12 这个版本。如果使用 ffi 也可以,但是页面显示不出来,之后换用 nodejs8,但是 electron 用不了,毕竟 nodejs8 已经快要不维护了。

之后使用了,ffi-napi ,其使用方法与 ffi 一样,但是兼容 nodejs 12,下面是我个人写的一段例子。
在这里插入图片描述
然后编译这个文件:gcc hello.c -fPIC -shared -o hello.so 此时会生成一个 hello.so 文件。将 hello.so 文件复制到 Electron 项目的某个目录,具体你来定。
在这里插入图片描述
这是 vue 源码,编译后运行,控制台会输出:199 + 201 = 400 的信息,这里虽然只有几行代码,却完全可以

关于在electron中调用C++动态库的经验总结 关于在electron使用dll动态库的经验总结 阅读详情

相关推荐

nodejs安装electron使用ffi模块调用windows的dll文件

1.安装nvm 访问https://github.com/coreybutler/nvm-windows下载windows的nvm工具 2.设置国内镜像,否则需要翻墙 nvm node_mirror  https://npm.taobao.org/mirrors/node/nvm npm_mirror  https://npm.taobao.org/mirrors/npm/ 3.安装(

finnson的博客 8852

如何在Electron中调用Dll

如何Electron中调用Dll 客户端有些硬件的接口需要调试,是在电脑上连了一些硬件的设备,比如打印机、扫描仪或者进行串口通信等等。单靠JS是完成不了了,我们决定通过把C++或者C#把这些功能打包成Dll,然后在Electron客户端中通过Node调用Dll来实现所需要的功能。 Dll类型 先简单说一下什么是Dll,Dll是动态链接库文件,也是一种代码库的形式,与静态链接库相比,它是在每次程序运...

puyahua的专栏 7872

高性能Electron桌面应用开发 - 使用ffi-napi调用C++库

Electron让我们用Web技术开发桌面应用,但当需高性能时会受限。此时,可使用C++开发底层库,然后在Electron中通过ffi-napi调用。ffi-napi可以在Node.js中加载和调用C/C++的动态库。本文介绍如何在Electron中使用ffi-napi 调用C++库:开发库,安装ffi-napi,加载库并调用函数,检查结果。通过调用C++函数,可实现高性能功能,大大提高应用性能和扩展性。

码农飞上天 6615

electron node-ffi 注入DLL

瞎折腾的 当写笔记 装上windows-build-tools 和 node-gyp 管理员运行powershell yarn config set registry https://registry.npm.taobao.org/ yarn config set ELECTRON_MIRROR https://npm.taobao.org/mirrors/electron/ yarn global add windows-build-tools yarn global add node-gyp

auxsit的博客 1280

在Vue+Electron项目中,调用命令行程序为cmd.exe,并运行cmd命令

在Vue+Electron项目中,我们有时候需要调用命令行程序并执行相应的命令。本文将介绍如何在Vue+Electron项目中调用cmd.exe,并运行cmd命令的步骤。通过以上步骤,您可以在Vue+Electron项目中调用cmd.exe,并运行cmd命令。请确保在运行cmd命令时谨慎操作,以免造成不可逆的影响。cmd.exe是Windows系统的命令行解释器,我们将使用它来执行cmd命令。在Vue项目的根目录下,创建一个新的文件夹,用于存放cmd命令行程序和相关文件。替换为您要执行的实际cmd命令。

2301_79326616的博客 1635

使用Electron调用命令行

在某些情况下,我们可能需要在Electron应用程序中调用命令行来执行一些操作,如运行外部命令或脚本。本文将介绍如何在Electron应用程序中使用Node.js的child_process模块来调用命令行。在本文中,我们学习了如何使用Electron调用命令行。通过使用Node.js的child_process模块,我们能够在Electron应用程序中执行命令行命令,并获取其输出。确保你只调用可信的命令,并对输入进行适当的验证和过滤,以防止潜在的安全漏洞。在上述代码中,我们首先创建了一个窗口,加载了。

2301_79326616的博客 838

Electron环境下Node-FFI调用DLL实战示例

Electron 是一个基于 Chromium 和 Node.js 的开源框架,允许开发者使用 HTML、CSS 和 JavaScript 构建跨平台的桌面应用程序。其核心架构由主进程(Main Process)与渲染进程(Renderer Process)组成,分别负责系统资源管理和用户界面渲染。要搭建 Electron 开发环境,首先需安装 Node.js(推荐使用 LTS 版本),然后通过 npm 安装electron模块:接着创建项目结构,包含入口文件main.js。

weixin_34456923的博客 1283

开发框架Furion之WebApi+SqlSugar (一)

MyFurion.Model项目中,通过Nuget添加Furion、Furion.Extras.DatabaseAccessor.SqlSugar、Furion.Extras.ObjectMapper.Mapster、SqlSugarCore,同时添加对项目MyFurion.Unility的引用。在MyFurion.Start项目中,通过Nuget添加 AspNetCoreRateLimit、System.Linq.Dynamic.Core,同时添加对项目MyFurion.Application的引用。

liwan09的博客 1万+

Arm A-profile架构RAS系统设计:可靠性、可用性与可服务性解析

在计算机体系结构中,可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability)是构建高可信系统的核心要素。RAS系统通过硬件错误检测、隔离和恢复机制,确保系统持续稳定运行。其技术原理包括ECC内存纠错、冗余执行单元和错误传播阻断等关键技术,可显著降低数据中心等关键业务场景的故障率。现代芯片设计中,Arm A-profile架构提供标准化的RAS框架,涵盖从内存子系统到计算单元的全方位错误管理。通过分层防御策略和统一错误记录格式,实现硬件错误可追溯、可修复。

weixin_30920853的博客 358

【PMP认证考试之个人总结】第 4 章 项目范围管理

第 4 章 项目范围管理 4.1 综述   1.产品范围和项目范围的区别 ①产品范围:某项产品、服务或成果所具有的特性和功能; ②项目范围:为交付具有规定特性与功能的产品、服务或成果而必须完成的工作; 2.收集需求、定义范围和创建WBS输出的区别 ①收集需求 ===> 需求跟踪矩阵; ②定义范围 ===> 项目范围说明书;

qq296398300的博客 2892

实用工具抓取youtube热门数据

YouTube作为全球第二大搜索引擎,2024年日均视频播放量突破50亿次,头部创作者单月广告分成可达百万美元量级。但对数据分析者而言,其反爬机制堪称业界最严: ‌反爬技术升级‌:Google部署的Botguard系统可检测异常流量,触发机制包括: 单IP每小时请求超过50次即封禁 检测Headless浏览器指纹(如Chrome的navigator.webdriver属性) 动态加载内容(如评论数据需滚动页面3次后加载) ‌数据价值维度‌:某MCN机构研究显示,前100热门视频的标题关键词复用率高达67%

26万+

keil5编程前的工程文件配置,芯片型号支持包配置,用户文件配置,启动文件配置和库函数配置-江科大stm32学习 第一天

1.start文件夹中头文件需要配置路径path,另外user和library也需要,都是同样的操作。如图,在option界面c/c++中,在倒数第二空行的三个点处添加。2.需要设置一个宏,作用是使主函数头文件包含标准库函数,操作如图:复制头文件中8296行的字符串,在option界面的c/c++中第一行define粘贴这个字符串即可。一、首先,下载芯片支持包,选择你自己的器件型号,不懂的可以看我这篇选器件的方法(默认已经注册好用户)点击编译按钮,编译成功后即可在user文件夹里添加main.c正常使用。

weixin_50682964的博客 1952

【AI编程】Qoder AI 编程工具从部署到深度使用实战详解

Qoder AI 编程工具从部署到深度使用实战详解

congge 8343

2025年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++初中组试卷1:带解析)(7月6日试卷)

2025年全国青少年信息素养大赛复赛真题(算法创意实践挑战赛C++初中组试卷1:带解析)(7月6日试卷)

王老师青少年编程 1961

YOLOv11魔改高效涨点 | 注意力篇 | SimAM注意力:基于神经科学的 3D 注意力机制,三维权重的暴力美学,无参数也能暴力涨点?代码极简,彻底疯狂!!!

在本文中,我们为卷积神经网络(ConvNets)提出了一个概念简单但非常有效的注意力模块。与现有的通道注意力(Channel-wise)和空间注意力(Spatial-wise)模块不同,我们的模块在不向原始网络添加参数的情况下,推断出层中特征图的 3D 注意力权重。具体来说,我们基于一些知名的神经科学理论,提出优化一个能量函数来寻找每个神经元的重要性。我们进一步推导出了该能量函数的快速闭式解,并表明该解可以用不到十行代码实现。

猫天意的博客 248

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 2020年Android开发还有出路吗?
下一篇: 谷歌退出Kotlin迁移指南Android开发者的首选语言
android1396
博客等级 码龄6年 4粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值