Я пытаюсь передать указатель на struct
на метод из nodejs с помощью ffi.Но я получаю следующую ошибку.Он не может определить тип структуры JavaScript, которую я создал.Как это исправить?
Для аналогичных методов с int*,double*
и т. Д. Я могу заставить его работать.
learn.h
struct myobj
{
int a;
};
extern "C" void create_object(struct myobj*);
learn.cc
void create_object(struct myobj* obj)
{
return;
}
learn.js
var ffi = require('ffi');
var ref = require('ref');
var Struct = require('ref-struct');
...
var myObj = Struct(
{
'a': 'int'
}
);
var myObjPtr = ref.refType(myObj);
...
var learn = ffi.Library(mathlibLoc, {
'create_object': ['void',[myObjPtr]]
});
module.exports = learn;
тест.js
var learn = require('./learn.js');
...
var blah = ref.alloc('myObj');
learn.create_object(blah);
throw new TypeError ('не удалось определить правильный "тип" из:' + JSON.stringify (type)) ^
TypeError:не удалось определить правильный «тип» из: «myObjPtr»