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 的开发人员提供了极好的指导和技巧

相关推荐
IT_陈寒几秒前
React实战技巧总结:如何优雅处理复杂列表的渲染卡顿问题?
前端·人工智能·后端
ZoeLandia2 分钟前
React11:数据请求与 TanStack Query
前端·react.js·typescript·react
软件技术NINI5 分钟前
基于PHP和MySQL的快递代收点管理系统的设计与实现
开发语言·javascript·数据库·mysql·毕业设计·php·毕设
前端架构师-老李14 分钟前
HTML与CSS基础第二课—初识HTML
前端·css·html
视***间15 分钟前
视程空间Edge工业边缘盒:给工业机器人装一颗耐造的“本地大脑“
前端·edge·机器人·边缘计算·智慧工业·工业视觉·视程空间
Dovis(誓平步青云)16 分钟前
一个分区超温就全棚浇水,控制系统怎样按区下策略
开发语言·前端·javascript·人工智能·机器学习
Sailing30 分钟前
🚀🚀【封闭结束5】Agent 中的 SSE 流式推送与 HITL 暂停恢复
前端·面试·agent
java1234_小锋32 分钟前
【技术专题】CSS3 网页技术 - CSS3 单位、颜色、字体与文本
前端·css·css3