node.js константа импорта ffi - PullRequest
       9

node.js константа импорта ffi

0 голосов
/ 27 августа 2018

Допустим, у меня есть общий объект libfoo.so, который имеет следующий исходный код:

foo.h

extern cont int fooconst;

foo.c

const int fooconst = 5;

Используя пакет ffi из node.js, как я могу получить доступ к fooconst?

Это простой пример, но в том, что я пытаюсь сделать, fooconst - это большая структура с указателями на полях, которую я не хочу переписывать в javascript.

edit: я не хочу изменять код C.

1 Ответ

0 голосов
/ 27 августа 2018

Полагаю, вам понадобится функция для возврата этого значения. В противном случае вы не сможете получить к нему доступ.

Так в вашем foo.c вы пишете:

const int fooconst = 5;

int getNum(){
    return fooconst;
}

А в вашем приложении nodejs:

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();
...