gpt4 book ai didi

javascript - 如何使用 ffi 在 javascript 中输入 c 结构指针?

转载 作者:行者123 更新时间:2023-11-30 19:29:29 39 4
gpt4 key购买 nike

我正在尝试使用 ffi 将指向 struct 的指针传递给 Nodejs 中的方法。但我收到以下错误。它无法确定类型我创建的 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);

throw new TypeError('could not determine a proper "type" from: ' + JSON.stringify(type)) ^

TypeError: could not determine a proper "type" from: "myObjPtr"

最佳答案

最后我找到了解决方案。

learn.js

module.exports = {learn,myObj};

test.js

var labh = ref.alloc(learn.myObj);
learn.learn.create_object(blah);

我们必须导出变量并对对象进行正确的范围选择。

关于javascript - 如何使用 ffi 在 javascript 中输入 c 结构指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765417/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com