[英]How do I input c struct pointer in javascript with ffi?
我試圖通過ffi從nodejs傳遞一個指向struct
的指針到方法。 但是我得到以下錯誤。 無法確定我創建的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;
test.js
var learn = require('./learn.js');
...
var blah = ref.alloc('myObj');
learn.create_object(blah);
拋出新的TypeError('從以下位置無法確定適當的“類型”:'+ JSON.stringify(type))^
TypeError:無法從“ myObjPtr”確定正確的“類型”
最后,我找到了解決方案。
learn.js
module.exports = {learn,myObj};
test.js
var labh = ref.alloc(learn.myObj);
learn.learn.create_object(blah);
我們必須導出變量,並對對象進行適當的范圍選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.