问题标签 [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.
javascript - 在节点 js 中使用 node-ffi 的未定义符号
我必须在 nodejs 中包含一个 C 代码,所以我使用node-ffi
了,我创建了log.c
:
我添加到文件 app.js 中:
当我运行 app.js 时,我收到以下错误消息:
错误:动态符号检索错误:./libfile.so:未定义符号:etat_periph
c++ - 如何使用 Node ffi 调用 C++ 代码
我正在编写一个 Data Aquisition 应用程序,但我没有使用传统无聊的前端,而是将 Web 2.0 前端放在上面,我听说 Node.js 擅长调用 C++ 代码,但自从我开始我应该考虑将我的 DLL 链接到我的前端的阶段我已经碰壁了。
我知道我可以在不使用诸如 node-ffi 之类的附加组件的情况下本地编写代码,但坦率地说,使用 Google 的 V8 语法执行这些绑定的语法似乎相当复杂,因此我猜 ffi 是最简单的方法处理这个(事情。
我知道之前已经问过一个前置问题,并且在这里有一个答案,但我仍然对如何编写 shim 以允许我从节点调用我的 C++ dll 感到有点不安。
我有以下 C++ 标头:
我假设我不需要提供 .cpp 文件的实现细节,但我想知道的是如何使这些方法对 node.js 可见以及如何将它们包装在 node-ffi 中?
我还担心将这个 dll 链接到前端可能会遇到问题,因为我的 .dll 依赖于 NIDAQmx .dll,这是否会导致问题进一步下线?
c - 将可变引用从 javascript 传递给 c
我有一个调用我的库的 c 包装器(不是用 c 编写的)。我使用 SWIG 为 javascript 目标生成 interface_wrap.cxx:
并使用node-gyp configure
并node-gyp build
成功获取共享对象。现在我可以转到 nodejs 提示符并成功调用我的 c 函数:
这成功地工作在 c 函数的签名是:
但是,有些函数带有签名,例如:
它接受一个指向非常量(可变对象)的指针,目的是修改它。
以下是我想要实现的目标,但我缺乏 javascript 背景对我没有帮助:
我如何调用 c 函数来改变我从 javascript 传递的东西?
node.js - 从 NodeJS 调用 Rust
我正在尝试为我的 soup.io 博客构建一个简单的 rust rss 'harvester',然后使用 node.js 将这些条目发布到侨民(因为有一个 npm 包)
我想学习如何从节点使用 rust,所以这就是我构建这个项目的原因。
我的问题是我不知道如何ffi
使用正确的类型调用函数。
'Vec<Post>'
不起作用。我知道我必须为此使用ref
。但我真的不知道它实际上是如何以及做什么的。
我知道我必须将 rust 类型转换为 javascript?
如何Vec<Post>
在我的 ffi 函数中使用?
我的 github 项目:Realtin/suppe
这里是相关代码:
锈代码:
节点代码:
node.js - node-ffi - 将字符串指针传递给 C 库
我在 C 库中有如下 API
我想使用 node-ffi 和 ref 将字符串指针传递给该 API。我尝试了很多方法,但都不成功。其他人可以帮我解决吗?
c++ - 加载由 vs2010 生成的 dll 时 C++ LoadLibrary 失败
首先,我有一个由 vs2010 IDE 生成的add.dll,
添加.h:
添加.c:
然后,我想在我的另一个pdf.c程序中调用这个 add.dll:
我用 vs2010 工具而不是 vs2010 IDE 本身构建和链接这个 pdf.c:
然后得到一个pdf.dll,我想用node-ffi和node.js来调用它:
结果console.log输出0,在pdf.c程序中的意思是加载add.dll库失败。
但是奇怪的是,当我使用上面的 vs2010 工具构建和链接 add.c 和 add.h 时,它会打印正确的答案 6。
所以,我试图找出这两种方法有什么不同。我使用Dependency Walker发现使用 vs2010 IDE 构建的 dll 依赖于MSVCR100.DLL和KERNEL32.DLL而使用 cl.exe 构建的 dll 仅依赖于KERNEL32.DLL。
在实际情况中,我有一个更复杂的 porgram,它使用 VS2010 IDE 导出一个 dll 和一个 .h 文件。我必须做一些工作才能在我的 node.js 程序中调用这个 dll。我在哪里错了,我该怎么办?
javascript - NodeJS: node-ffi, ref-struct, ref-array
I'm writing PKCS11 cryptoki wrapper using nodejs plugins ffi
, ref
, ref-struct
and ref-array
. I have this code.
When I call this function I have wrong results (CKR_ARGUMENTS_BAD, CKR_ATTRIBUTE_TYPE_INVALID). Please, help me to find error.
FFI function
Types
c - 从 NodeJs 调用 C 库
谁能帮我解决 nodejs 和 C 库的问题(调用一些 dll 方法)?
我的 dll 有这些方法:
使用这些数据结构:
我的nodejs代码:
我的 dll 将所有接收到的数据写入调试文件,我看到输入对象传递的数据值插入了错误的位置,我无法读取输出对象的值。
我哪里错了?
node.js - NodeJS FFI - 创建结构数组
我有 C++ 代码。我怎样才能使用nodejs
模块重复这样的代码ffi
,,,,ref
ref-struct
ref-array
有关更多详细信息,它是 PKCS11 函数。
我的 JavaScript 代码是
CKK_AES_KEY_GEN
为机制运行此代码后C_GenerateKey
返回错误
Error on Cryptoki function C_GenerateKey. Error is TemplateIncomplete(208)
node.js - nodejs 应用程序在 Windows 机器中给出错误“%1 不是有效的 Win32 应用程序”
我的 Nodejs 应用程序在 ubuntu 中运行良好。当我尝试在 Windows 机器上部署相同的内容时,它显示以下错误。
我删除了 ffi 模块并在 Windows 机器上再次尝试 npm install ffi 它也没有工作。
你能提供你对这个问题的看法吗