问题标签 [node-addon-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
66 浏览

javascript - 使用 node-addon-api 返回 c++ 对象实例

在javascript中,我试图运行的代码是

所以在 cpp Element 类中我有

但我不知道如何实现 GetParent 方法,this->parent 具有正确的指针,但我在互联网上找到的所有示例都创建了一个新的 c++ Element 实例,调用 js 构造函数来拥有一个 Napi::Object

我可以调用一些方法来反转 Element::Unwrap 吗?

喜欢

0 投票
1 回答
59 浏览

c++ - node-addon-api 如何在 JS 和 C/C++ 之间来回传递 int 指针

我有以下后端功能:

在前端,当点击开始按钮时,一个 C 进程将开始运行,直到它收到一个 SIGINT 信号,当点击停止按钮时,向正在运行的 C 进程发送 SIGINT 信号。int* 将按如下方式运行:JS(单击开始按钮)-> C/C++(cStart 已修改 int*,因此 int* 不会显式返回给 JS)-> JS(单击停止按钮)-> C/C++)。那么如何在 JS 和 C/C++ 之间来回传递一个 int 指针呢?

0 投票
0 回答
120 浏览

c++ - 如何通过 C++ 手动构造 Napi::CallbackInfo 对象?

我编写了许多插件函数,并确保它们可用。现在我想通过 google-test 编写的单元测试来测试这些函数,因此我需要在 c++ 中手动调用这些函数。因此,我需要在调用函数时传递 Napi::CallbackInfo 参数。但我不知道如何构造 Napi::CallbackInfo 对象。

我写的函数的签名如下: Napi::Value MyFunction(const Napi::CallbackInfo& info);

0 投票
0 回答
22 浏览

electron - 使用 Electron 无法在 Node-addon 的 C++ 窗口回调中调用 js 函数

在我的电子应用程序中,我使用 Node-addon 创建一个窗口,我想在窗口大小发生变化时调用一个 js 函数。

首先我尝试使用自定义的异步回调,但它不起作用,登录js的回调函数没有打印。我不知道是我的问题还是异步回调无法处理它。

然后我使用异步线程安全函数。当我使用 call_js_cb 参数创建它时无法调用 JS 回调。我在 call_js_cb 中调用 JS 回调,但它返回 napi_invalid_args。详细信息显示在下面的代码中。

有线的事情是,当我使用nullptr替换onWindowEventForJS时,可以调用JS回调。但是我需要将参数传递给JS回调。

有人帮忙~~~

0 投票
1 回答
75 浏览

node.js - 在 AsyncWork.OnOK 函数中调用 Promise::Defered.Resolve() 时崩溃

我将 a 传递Napi::Promise::Deferred给 AsyncWorker,然后调用Promise::Defered.Resolve()AynscWork.OnOK。但是当我调用 Resolve() 时它总是崩溃

0 投票
0 回答
47 浏览

cross-compiling - 如何解决mingw-w64不支持参数:-undefined dynamic_lookup

现在想在MacOS上使用C++交叉编译一个Windows平台的Node模块,使用的交叉编译工具是mingw-w64. 编译过程很顺利,但问题是链接是包含一组参数的链接,这些参数是-undefined dynamic_lookup. 但mingw-w64不支持-undefined dynamic_lookup

-undefined dynamic_lookup意思是:将所有未定义的符号标记为必须在运行时查找。

我尝试了一些其他可能的参数,例如:-Wl, --allow-shlib-undefined-Wl, --unresolved-symbols=ignore-all. 谁知道如何解决这个问题?

0 投票
1 回答
38 浏览

node-addon-api - Napi::Env 可以在子线程中使用吗?

我写了一个示例程序,将 Napi::Env 对象传递给子线程使用,但是运行时出错。

示例代码如下:

错误如下:

在此处输入图像描述

感谢您的帮助!

0 投票
0 回答
54 浏览

visual-studio-code - 如何为由电子运行的本机节点插件设置 VSCode 调试配置?

我正在成功运行一个电子应用程序(在 Windows 10 上,编译器是 msvc),并且我也能够正确调试主进程和渲染器进程。

我刚刚添加了一个自定义节点本机插件(使用node-addon-api),它在主进程中导入并且运行良好。

节点本机插件是用 C++ 编写的,并使用标志构建cmake-js--debug它可以正确生成调试二进制文件。

现在我想从 VSCode 调试 C++ 插件。

以下是我当前(失败)的launch.js文件尝试。

  1. 调试 Electron 运行的本机插件的常见工作流程是什么?启动主进程调试然后附加 C++ 调试?

  2. 我应该如何编写我的 C++ 调试配置?

0 投票
0 回答
36 浏览

node.js - 如何从C修改nodejs数据?

有没有办法在javascript环境中修改数据(arraybuffer,typedarray)并注意?例如,给定一个数组缓冲区,用 C 创建或从节点传递。我可以在 C 中修改其底层缓冲区以便能够在节点中看到该修改吗?

0 投票
1 回答
43 浏览

node.js - Node.js 本机插件的不同实例之间的全局共享数据?

我正在寻找使用 Node-API(更具体地说是使用 C++ 包装器模块node-addon-api)创建本机插件。

我需要拥有将加载一次并在插件的不同实例之间共享的全局只读数据(例如,当插件由不同的 node.js 工作人员加载时)。

有推荐的方法吗?将数据存储在静态变量中是否安全?