node.js ffi导入常量

问题描述 投票:1回答:1

假设我有一个共享对象libfoo.so,它有以下源代码:

foo.h中

extern cont int fooconst;

foo.c的

const int fooconst = 5;

使用node.js中的ffi包,如何访问fooconst

这是一个简单的例子,但是我正在尝试做什么,fooconst是一个在字段中有指针的大结构,我不想在javascript中重写。

编辑:我不想修改C代码。

javascript node.js ffi
1个回答
4
投票

我想你需要一个函数来返回这个值。否则您将无法访问它。

所以在你的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();
© www.soinside.com 2019 - 2024. All rights reserved.