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

electron中调用C++

开源项目:GitHub - akab/electron-cpp: A simple app that demonstrates the use of Electron as Front-End and C ++ DLLs as Back-End

 node-addon-api 

GitHub - nodejs/node-addon-api: Module for using Node-API from C++

        该模块包含 仅标头的 C++ 包装类,可在使用 C++ 时简化 Node.js 提供的基于 C 的Node-API的使用 。它以较低的开销提供了 C++ 对象模型和异常处理语义。

        实现插件有三种选择:Node-API、nan 或直接使用内部 V8、libuv 和 Node.js 库。除非需要直接访问 Node-API 未公开的功能(如Node.js 核心中的C/C++ 插件中所述) ,否则请使用 Node-API。 有关 Node-API 的更多信息,请参阅 带有 Node-API 的 C/C++ 插件。

        Node-API 是 Node.js 提供的 ABI 稳定 C 接口,用于构建本机插件。它独立于底层 JavaScript 运行时(例如 V8 或 ChakraCore),并作为 Node.js 本身的一部分进行维护。它的目的是将本机插件与底层 JavaScript 引擎的更改隔离开来,并允许为一个版本编译的模块无需重新编译即可在更高版本的 Node.js 上运行。

        该node-addon-api模块不是 Node.js 的一部分,保留了 Node-API 的优点,因为它仅包含内联代码,而这些代码仅依赖于 Node-API 提供的稳定 API。因此,使用 node-addon-api 针对某一版本的 Node.js 构建的模块应该可以运行,而无需使用较新版本的 Node.js 重新构建。

        重要的是要记住,其他Node.js 接口(例如 libuv(通过 包含在项目中#include <uv.h>))在 Node.js 主要版本中并不是 ABI 稳定的。因此,插件必须使用 Node-API 和/或node-addon-api 专门针对包含 Node-API 实现(意味着 Node.js 的 LTS 版本)的 Node.js 版本进行构建,以便从 Node 上的 ABI 稳定性中受益.js 主要版本。Node.js 提供了ABI 稳定性指南,其中包含一般 ABI 稳定性的详细说明,特别是 Node-API ABI 稳定性保证。

        当新的 API 添加到 Node-API 时,必须更新 node-addon-api 以为这些新 API 提供包装器。因此,node-addon-api 提供了允许调用者获取底层 Node-API 句柄的方法,因此直接调用 Node-API 和使用 node-addon-api 提供的对象/方法可以一起使用。例如,为了能够使用 node-addon-api 尚未提供包装器的 API。

        node-addon-api 公开的 API 通常用于创建和操作 JavaScript 值。概念和操作通常映射到ECMA262 语言规范中指定的思想。

        Node -API 资源为刚刚开始使用 Node-API 和 node-addon-api 的开发人员提供了极好的指导和技巧


http://www.kler.cn/a/541423.html

相关文章:

  • 数据结构与算法(test3)
  • DeepSeek与GPT大语言模型教程
  • jupyterLab插件开发
  • C++字符串相关内容
  • Goland 内存逃逸问题
  • CF998A Balloons​ 构造 ​
  • 视频编解码标准总结
  • 1.15 联邦学习
  • 《Wiki.js知识库部署实践 + CNB Git数据同步方案解析》
  • AI算力的摆脱有点像发动机汽车变电动车
  • 第22章 Balking设计模式(Java高并发编程详解:多线程与系统设计)
  • 牛客周赛Round 80 —— 举手赢棋 python 补题 + 题解
  • 数据结构之八大排序算法
  • Visual Studio 2022 中使用 Google Test
  • k8s:pod被kill,显示command terminated with exit code 137
  • Python Pandas(7):Pandas 数据清洗
  • UDP小实验
  • #渗透测试#批量漏洞挖掘#某成科信票务管理系统 TicketManager SQL注入漏洞
  • MapReduce简单应用(三)——高级WordCount
  • C#操作excel数据,第一步先保存到Redis,第二步再保存到Sql Server数据库。第三步同步到MongoDB中
  • Lisp语言的算法
  • 51单片机独立按键的扩展应用
  • Linux ping不通百度但浏览器可以打开百度的的解决方法
  • 抖音“碰一碰”发视频:短视频社交的新玩法
  • 【设计模式】【行为型模式】职责链模式(Chain of Responsibility)
  • 集成学习 网络安全 网络安全集成服务