Как добавить собственный struct_info.json? (Emscripten)
Я хотел бы портировать библиотеку C. Здесь есть очень короткий урок: Взаимодействие с кодом
Мне нужно создать структуру с использованием 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;
//...
}
Ответы
Ответ 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 } ]);
Надеюсь, это поможет.