假设我有一个共享对象libfoo.so,它有以下源代码:
foo.h中
extern cont int fooconst;
foo.c的
const int fooconst = 5;
使用node.js中的ffi
包,如何访问fooconst
?
这是一个简单的例子,但是我正在尝试做什么,fooconst是一个在字段中有指针的大结构,我不想在javascript中重写。
编辑:我不想修改C代码。
我想你需要一个函数来返回这个值。否则您将无法访问它。
所以在你的foo.c
中你写道:
const int fooconst = 5;
int getNum(){
return fooconst;
}
在你的nodejs app中:
let ffi = require("ffi");
let ref = require("ref");
let int = ref.types.int;
let fooconst = ffi.Library("./libfoo.so", {
"getNum": [int, []]
});
let myConst = fooconst.getNum();