问题标签 [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 回答
1076 浏览

node.js - NodeJS <--> Dll:如何处理由 C 方法调用触发的回调

我们目前正在尝试将 dll 与 NodeJS 集成。dll 是一个消息总线,它在总线上接收到新消息时触发回调(如果已注册)。附加的 dll 模拟了这种行为:无限循环,并在每个循环中调用带有回调的 C 方法。这是我的测试用例:

这是示例dll的源代码

FFI模块真的可以吗?我应该使用 Edge 模块还是插件?

0 投票
1 回答
3315 浏览

node-ffi - node-ffi:使用回调函数调用 c lib

我想调用ac lib,.h文件是这样的:

在node-ffi中,如何定义函数并使用它?

0 投票
1 回答
1240 浏览

c++ - 使用包含来自 Node.js 的 char 数组的结构调用 C++ dll

我正在使用 Node.js ffi插件来调用 C++ DLL。

我遇到的问题是我提供的结构 - 它包含一个 char 数组 - 我不相信我设置正确。结果我无法访问内容。

例程在 C++ 头文件中的定义:

MyConfig结构在C++ 中定义如下:

我对应的 Node.js 结构定义:

注意:下面是我从 Node.js 调用 DLL 的地方——尽管我可能是错的,但我认为这里没有问题。

有谁知道我哪里错了?

0 投票
2 回答
11774 浏览

node.js - Node.js - 找不到绑定文件

我正在尝试使用 Nodejs v6.2.0 在我的 Windows 7 PC 上运行 node-ffi 应用程序,但它因以下错误而崩溃。我尝试了多种方法,但没有解决我的问题

0 投票
1 回答
1574 浏览

javascript - Node-ffi 窗口列表

我希望能够使用 Node-ffi 来获取 Windows 操作系统中所有当前打开的窗口/程序的列表,大概是来自 User32.dll 的 EnumWindows 或类似的东西。我希望能够从 User32 中的“FindWindowW”中获得一个句柄,以及一个进程名称的字符串,所以我知道它是哪个。

感谢某种善良的灵魂,我已经让“FindWindowW”工作并且知道关于 EnumWindows 的这个问题,但我就是无法让该解决方案正常工作,总是进入Uncaught ReferenceError: libm is not definednode_modules\ffi\lib_foreign_function.js:59

谢谢,非常感谢您的帮助。

0 投票
1 回答
230 浏览

javascript - 无法在 ffi-generatefor node js 中加载 libclang

我正在使用 node js 来测试我的一个项目。我的代码在 c++ 中,我需要从 c++ 头文件中制作一个自动化的 javascript 包装器。我遇到过 ffi-generate ,发现它可以将 c/c++ 头文件解析为 javascript 文件。在尝试这里提到的命令时 https://www.npmjs.com/package/ffi-generate

我有一个错误

无法加载 libclang,请确保已安装 3.2,指定 -L 或在路径中包含 llvm-config。

我还安装了 LLVM 3.4 并添加了系统路径的路径。libclang.dll 存在于 LLVM\lib 中。我还使用 -L 选项传递了路径,但它仍然失败。

如果有人弄清楚如何在 Windows 中安装 libclang.dylib 并使用 ffi-generate 将 c/c++ 文件解析为 javascript,那将会很有帮助。

0 投票
3 回答
1537 浏览

javascript - 节点 ffi Rect 类型

我想使用 node-ffi 和 user32 库在节点中获取特定窗口的大小。根本无法使 Rect 指针工作,我要么得到 NULL 作为输出,要么得到致命错误。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx

Out LPRECT lpRect 应该包含左上角和右下角的坐标。

0 投票
1 回答
212 浏览

javascript - 从句柄获取程序的图标

我希望能够从其句柄中获取程序图标(从带有 EnumWindow/FindWindow 的 User32.dll 获取),我知道ExtractAssociatedIcon但我相信这可以从文件而不是句柄中工作。这个问题可能是如何将 Handle 转换为要转换为 Icon 的文件位置。

我的意图是将此代码移植到 JavaScript,node-ffi以便在node-hide中使用,我的 npm 模块用于隐藏和显示 Windows 程序。使用 DLL 将是最简单的,但 C/C# 解决方案将起作用。只是求指导,谢谢。

0 投票
1 回答
503 浏览

node.js - 如何将原始内存复制到nodejs中的缓冲区?

我使用nodenode-ffi。我从 native/C 得到一个回调,它传递 a(void *,size_t)以指示具有有趣数据的内存区域。我想接受它并Buffer使用相同的内容进行创建。

基本上:

如何将原始内存复制到Buffer

0 投票
1 回答
1676 浏览

node.js - 如何从node-ffi创建的长度为0的nodejs缓冲区读取数据

我正在尝试使用 node-ffi 包装现有的 C 库,但我似乎无法读取返回的结果。情况有点尴尬,因为函数返回的是 C 结构体

表示 datum.ptr 的节点缓冲区的长度字段为 0。

这是显示该问题的整个 C 代码。

这是javascript:

这是输出:

请注意 p->ptr 和缓冲区都说 0x103b02e20 所以我认为数据在那里,我只是因为某种原因无法从缓冲区中读取它。

有人知道我缺少什么吗?