问题标签 [node-ffi]

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 回答
2372 浏览

javascript - 使用 Node.js FFI (javascript & c) 绑定数据

我正在使用节点 ffi调用 ac 库,但使用此代码时遇到了一些问题:

这个 c 程序在当前目录中创建一个文件夹,如果没有错误则返回 1。

我用来调用这个 c 程序的 javascript 代码是:

仅当我在 create 函数中使用 int 而不是 char 时,该程序才有效(如图所示),但我需要在此函数中使用 char *。因此,如果我将功能更改为create(char * dir)I't 不起作用。

我试图将 js 中的调用从

{"create": [ "int", ["int"] ] });

{"create": [ "int", ["char *"] ] });.

你能帮忙吗?

谢谢

0 投票
0 回答
1262 浏览

node.js - 调试失败的 node-ffi 回调/分段错误

我正在尝试使用 node-ffi 从 node.js 中使用 libvlc,虽然它似乎对一般的基本媒体播放器功能非常有用,但当我尝试使用时,我的程序中不断出现崩溃、分段错误和一般冻结libvlc 的异步事件系统,并与 node 的 EventEmitter 集成。到目前为止,我使用的代码托管在https://gist.github.com/2644721,但似乎不起作用。

GDB 产生了好坏参半的结果,但我收到的最后一次崩溃是:

很明显我在这里做错了——node-ffi 文档说,如果你做错了什么,很容易导致这种行为。我在想也许回调不是从同一个线程或范围运行的,但我不确定如何检查甚至修复它。任何帮助,将不胜感激...

0 投票
3 回答
5430 浏览

javascript - Javascript中的C解析器

我想用 Javascript 解析 C 头文件。有没有这样的图书馆?否则,有什么提示可以帮助我入门吗?

更新:我的最终目标是为node-ffi自动构建接口。解析器不一定必须使用 Javascript,只要它可以吐出 Javascript 可以理解的格式即可。如果自己开发非常困难,我可能不得不使用现成的解决方案......?

0 投票
2 回答
4864 浏览

javascript - 节点 webkit WinAPI

我正在为 Windows(Vista、7、...)开发简单的 node-webkit 应用程序,我需要使用一些 WinAPI 函数,特别是RegisterHotKeySendInput,来绑定系统范围的热键并基于它进行击键。node-webkit 没有提供这样的 API,所以我想使用node-ffi来调用这些函数。

我是 WinAPI 开发的新手,所以我阅读了一些 MSDN 手册,但发现大多数示例都是创建窗口、消息循环、消息处理过程等。所以我不太明白,如何从node-webkit正确调用WinAPI,而不创建单独的窗口?

node-ffi教程没有涉及这种情况,所以我找到了node Windows库,但它似乎只是通过node.js实现了Windows应用程序。

有没有办法在不创建 Windows 应用程序的情况下实现本机调用?这样做的正确方法是什么?

0 投票
1 回答
1858 浏览

javascript - 是否可以创建一个使用 c 库进行 monetdb 连接的 node.js 模块?

我正在尝试monetdbnode.js. 我有一个简单的(20 行)c 程序,可以moentdb使用 mapi 库进行查询。

我可以使用这些库来构建node.js使用这些库并连接到的东西(模块/插件)monetdb吗?

(使用 odbc 是一种选择,但它有其自身的缺点。)

更新 1 :
node-ffi 非常棒。我能够很容易地创建一个获取表程序。(例如,我添加了我的工作代码。)

因此,如果我有 3 个选项
1. ODBC
2. node-ffi
3. ac 程序来获取数据库数据并通过套接字监听来自 node.js 的连接

就性能而言,这是更好的实现选择,如果我有更少的时间来开发 node.js 的插件

更新 2:
不建议将上述代码用于生产用途...它不使用 node.js 的异步功能,因此请在婴儿步骤中使用它

0 投票
1 回答
1317 浏览

c - NodeJS-C 接口

我试图弄清楚如何在 C 库和 NodeJS 模块之间传递数据。我可以通过 NodeFFI 模块这样做吗?

还是我必须编写自己的 NodeJS 插件来开发 C-NodeJS 接口?

0 投票
1 回答
16384 浏览

c++ - 用于访问现有 C++ 功能的 node-ffi 与 node 扩展

我有一些现有的 C++ 代码,它们在独立的 C++ 应用程序中进行数值处理。我现在想在新的 node.js 应用程序中使用该代码。

研究如何从 node.js 访问 C++ 代码,出现了两个选项:

  1. 编写一个 node.js 扩展
  2. 使用node-ffi

node-ffi 似乎是访问现有的好选择,但是我是否正确地认为如果我使用 node-ffi 我必须编写一个 C 包装器才能使我的 C++ 可访问?(这是我可以使用 Visual Studio 在 Windows 上获得简单测试用例的唯一方法)。

对于我的源代码已经是 C++ 而不是 C 的情况,在上述两个选项之间进行选择的考虑因素是什么?

0 投票
1 回答
1181 浏览

node.js - 在 Windows 上使用 node.js 运行同步任务

我正在使用 Node FFI 模块并尝试在 Windows 上运行同步任务。我可以使用以下代码成功运行任务。

我认为这是执行同步任务的方式,但此代码总是在第一个“ls -lrt”命令之后退出;如果我链接更多命令,它们将无法工作。那么,这里是否有回调函数,在 FFI 模块中,或者我可以在 Windows 上的 node.js 中链接命令的另一种方式,以便它们一个接一个地同步运行。

0 投票
1 回答
449 浏览

c++ - 使用节点 FFI 创建 SDL2 操纵杆绑定的问题

我一直在尝试编写一个对象以使用 SDL2 库中的 Joystick 类和 NodeJS 使用 FFI 模块,但一直遇到问题。它似乎在大约 50% 的时间内按预期工作,但在其他时候,程序声称它无法找到连接的操纵杆(使用 SDL_GetError())。

这是代码示例:

当它失败时, SDL_GetError() 会给我以下错误消息:

有任何想法吗?

0 投票
4 回答
17772 浏览

node.js - 从 Node.js 调用 C++ 库(Node addons / node-ffi)

我正在尝试将外部 C++ 库(我可以访问 .so 文件以及头文件)集成到我的 Node.js 应用程序中。

经过大量研究,我的选择减少到:

  1. 编写节点插件

  2. 使用node-ffi

根据 node-ffi 的 gitHub 的定义,我无法判断它是否会直接在 C++ 库上工作:

node-ffi 是一个 Node.js 插件,用于使用纯 JavaScript 加载和调用动态库。它可用于创建与本机库的绑定,而无需编写任何 C++ 代码。

所以我的问题是:

  • 选项 1) 是否暗示以某种方式重写外部 C++ 库?
  • node-ffi 是否能够直接调用 C++ 库而无需我必须编写任何类型的 C 包装器?

我不是 C/C++ 方面的专家,所以如果我错过了一些基本的内容供您回答,请告诉我,以便我改进我的问题。