【发布时间】:2016-12-11 22:14:43
【问题描述】:
我想移植一个 C 库。这里有一个非常简短的教程:Interacting with code
我需要使用 javascript 创建一个结构,并返回一个指向它的指针。我查看了已经移植的库。我的代码如下所示:
var ptr = _malloc({{{ C_STRUCTS.MyStruct.__size__ }}});
{{{ makeSetValue('ptr', C_STRUCTS.MyStruct.attr, '0', 'i8') }}};
它不起作用,因为 emscripten 不知道 MyStruct。
我的库定义使用--js-library添加到项目中
但我不知道,如何添加结构定义(struct_info.json)
在 C 代码中,我有:
struct MyStruct {
int8_t attr;
//...
}
【问题讨论】:
-
我不知道 emscripten 但你不能在 C 中创建一个
createMyStruct函数并使用它吗? -
不幸的是,这不是一个选项。
MyStruct_Create函数必须在js中实现 -
不是重复的。我想使用像
makeSetValue这样的 emscripten 宏访问数据,而不是直接处理内存缓冲区 -
@IterAtor 让我直截了当地说:你想导出你的 C 结构对吗?并且能够从 JS 中使用它?您是否尝试过 EMSCRIPTEN_BINDINGS(my_value_example) { value_array
("MyStruct") .element(&MyStruct::attr) ... ?
标签: javascript c struct emscripten