问题标签 [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.
winapi - 带有 node-ffi 的 Win32 api 格式消息
我正在尝试使用 node-ffi 与 win32 api FormatMessageA 进行交互,但是我似乎无法获取 out lpBuffer 参数,这是一段代码来显示我尝试过的内容
我知道函数是成功的,因为它返回 57 但是我无法获得包含我需要的错误字符串的 lpBuffer 值。
javascript - 如何在 Node.js 中截取窗口截图?
我正在进行一项研究,以找到一种使用 Node.js 截取窗口屏幕截图的方法,并且我正在尝试使用 node-ffi 来执行此操作,但我不知道如何......一次我我卡在这里:
结果:
已编辑
我在 C++ 中找到了以下工作代码
现在我需要在 NodeJs 上执行此操作,
任何人都可以帮助我吗?
node.js - Node.js - 将`fork()` 与 node-ffi 或附加组件一起使用是否安全?
我正在编写一些脚本来跟踪子进程。但是,我不想编写 C 代码,所以我正在考虑使用 node-ffi 模块来处理这些东西。但是我必须分叉一个新进程并调用 execve() 然后运行子进程。那安全吗?
fork()
我的意思是 POSIX 分叉,而不是child_process.fork()
. 请问如果子进程和父进程共享同一个文件描述符,会不会有什么问题(比如父子进程读取同一个需要的.js文件)?
javascript - 结构数组作为 OUT 参数从 C 到 JS 使用 node-ffi、ref-array 和 ref-struct
我正在使用 node-ffi 将 JS 与 C 库集成。我想出了将复杂结构作为 IN 参数传递并获得单个结构作为 OUT 参数的方法。但是,我无法从 C 中成功获取结构数组并在 JS 中对其进行迭代。我有以下 C 结构和 API。
我已经在 JS 端模拟它并调用 C API 如下
我可以打印并检查值是否在 C 内部的 out 参数中正确填充。但我无法在 JS 端打印值。它要么因 Seg 故障而失败或未定义。
任何建议都会有很大帮助!
node.js - 检测用户何时解锁工作站
我试图检测用户何时解锁他们的工作站。以下代码尝试使用 WTSRegisterSessionNotification() 注册窗口以接收会话更改消息。据说在此之后我可以收听 WM_WTSSESSION_CHANGE ,它可以包含 WTS_SESSION_UNLOCK 作为参数。
问题:目前 WTSRegisterSessionNotification() 总是返回 false。
有谁知道我怎么能做到这一点?我在 Windows 10 顺便说一句。
IInspectable 推荐 GetLastError()。不幸的是,这不是 node-ffi 支持的。 https://github.com/node-ffi/node-ffi/issues/261
javascript - 使用 Node-ffi 写入文件
将 Node-ffi 与 C 一起使用来写入文件是一种好方法吗?
还是使用流并直接在javascript代码中编写更好?
node-ffi - 无法让 node-ffi 模块工作
仅出于测试目的,我在 delphi 中创建了一个小 DLL。代码是:
我只想用这个 nodejs 代码运行这样简单的东西:
问题是我在控制台上看到“1”和“2”,没有别的。请帮忙,有什么想法吗?
提前致谢
javascript - 来自 C++ 线程的节点 FFI 回调
我今天遇到了一个令人沮丧的问题。我正在使用node-ffi
在我的电子应用程序中运行 C++ 代码。总的来说,我有很好的经验,但是我今天开始使用多线程并遇到了一些困难。我传入的ffi
回调是从线程调用的就好了。但是,当我结束循环并尝试join
将循环线程连接到主线程时,它会完全冻结电子应用程序。
完全免责声明:我对 C++ 还很陌生,如果对我的代码提供任何反馈以改进它,我将不胜感激,尤其是您认为我应该注意的任何危险信号。
这里有两个 repos 演示了我遇到的错误:
Electron Project - https://github.com/JakeDluhy/threading-test
C++ DLL - https://github.com/JakeDluhy/ThreadedDll
以下是我正在做的事情的概述:
在我的 dll 中,我公开了开始/结束会话和开始/停止流式传输的函数。这些调用类实例的引用来实际实现功能。本质上,它是更强大的 C++ 类的 C 包装器。
下面是这个Threader
类的样子:
然后这是我使用它的测试javascript:
主电子进程在 app.js 中运行。我希望看到
但它显示没有end session
。但是,如果我删除frameReadyCB()
c++ 中的行,它会按预期工作。所以不知何故 ffi 回调引用搞砸了多线程环境。很想对此有一些想法。谢谢!
node.js - 如何初始化结构节点-ffi 结构
我在 linux 上有图书馆。该库具有结构。该库的手册说必须初始化结构,如下所示:
struDeviceInfo — 从设备输出数据,我必须阅读和使用。
我如何在 Nodejs 中编写代码。PS:我使用node-ffi模块,库初始化并连接到设备完成ok。