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

相关推荐
文城5211 小时前
HTML-day1(学习自用)
前端·学习·html
阿珊和她的猫2 小时前
Vue 和 React 的生态系统有哪些主要区别
前端·vue.js·react.js
偷光2 小时前
深度剖析 React 的 useReducer Hook:从基础到高级用法
前端·javascript·react.js
The_era_achievs_hero2 小时前
动态表格html
前端·javascript·html
Thomas_YXQ3 小时前
Unity3D Shader 简析:变体与缓存详解
开发语言·前端·缓存·unity3d·shader
2201_756942643 小时前
react入门笔记
javascript·笔记·react.js
傻小胖4 小时前
ES6 Proxy 用法总结以及 Object.defineProperty用法区别
前端·javascript·es6
Web极客码4 小时前
如何跟踪你WordPress网站的SEO变化
前端·搜索引擎·wordpress
横冲直撞de4 小时前
高版本electron使用iohook失败(使用uiohook-napi替代)
前端·javascript·electron
_Eden_4 小时前
认识Electron 开启新的探索世界一
前端·javascript·electron