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

标签 javascript c struct emscripten

我想移植一个 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/

相关文章:

c++ - 用大量独特数据填充 C++ 中的嵌套结构

go - 为什么我对数组中嵌套结构的更改会在进行更改的函数之外丢失?

javascript - 无法在 Webdriverjs 中使用高级用户交互

javascript - Node/Express 生成一次性路由/链接/下载?

c - 如何找到对列表中所有有重叠的对?

c - 处理系统重启产生的信号

go - 使用来自不同文件的golang中的接口(interface)方法

javascript - 将 tinymce 与 asp .net MVC 4.0 集成

javascript - angularFire 无法将数据添加到 firebase

c - 函数指针声明语法困惑