将可变引用从javascript传递给c

时间:2015-08-10 13:10:10

标签: c node.js swig v8 node-ffi

我有一个调用我的库的c-wrapper(不是用c编写的)。我使用SWIG为javascript目标生成interface_wrap.cxx:

swig -c++ -javascript -node interface.i

并使用node-gyp configurenode-gyp build成功获取共享对象。现在我可以转到nodejs提示符并成功调用我的c函数:

nodejs
> var abc = require('./build/Release/shared_lib_name`)
> abc.c_create("Hello")

这成功地适用于c函数的签名为:

int32_t c_create(const char* p_char);

但是有些签名的功能如:

int32_t c_fun_0(int32_t* p_int32);
int32_t c_fun_1(char* p_char);

其中包含指向非const(可变对象)的指针,目的是修改它。

以下是我想要实现的目标,但我缺乏javascript背景对我没有帮助:

$ node
> var abc = require('./build/Release/shared_lib_name')
> var some_int = 0
> var same_string = <how to reserve X bytes ?>
> abc.c_fun_0(&some_int)
> abc.c_fun_1(&some_string)

我如何调用c函数来改变我从javascript传递的东西?

0 个答案:

没有答案