如何添加自己的struct_info.json?(emscripten)

Ite*_*tor 11 javascript c struct emscripten

我想移植一个C库.这里有一个非常简短的教程:与代码交互

我需要使用javascript创建一个struct,并返回一个指向它的指针.我查看了已经移植过的库.我的代码看起来像这样:

var ptr = _malloc({{{ C_STRUCTS.MyStruct.__size__ }}});

{{{ makeSetValue('ptr', C_STRUCTS.MyStruct.attr, '0', 'i8') }}};
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为emscripten不知道MyStruct.

我的库定义被添加到项目中--js-library 但是我不知道,如何添加结构定义(struct_info.json)

在C代码中,我有:

struct MyStruct {
    int8_t attr;
    //...
}
Run Code Online (Sandbox Code Playgroud)

小智 1

您应该创建 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 } ]);  
Run Code Online (Sandbox Code Playgroud)

希望它会有所帮助。