簡體   English   中英

如何使用ffi在javascript中輸入c struct指針?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM