我想移植一个 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;
//...
}
最佳答案
您应该创建 C 而不是 JS 结构。例如:
var st_t = new ctypes.StructType("st_t",
[ { "self": ctypes.PointerType(ctypes.void_t) },
{ "str": ctypes.PointerType(ctypes.char) },
{ "buff_size": ctypes.size_t },
{ "i": ctypes.int },
{ "f": ctypes.float },
{ "c": ctypes.char } ]);
希望对您有所帮助。
关于javascript - 如何添加自己的struct_info.json? (emscripten),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41091725/