繁体   English   中英

emscripten 在 C 中读取 javascript arrayBuffer

[英]emscripten read javascript arrayBuffer in C

这段代码不正确,但它告诉我我想要做什么

char* p = EM_ASM(
    var a = new ArrayBuffer(8);
    return a;
);

获取该 javascript arrayBuffer 的 C 指针的正确方法是什么?
我只想读取 arrayBuffer 而不是写入

据我所知,没有直接从某些内联 JavaScript 返回数组的方法(尽管有一种方法可以从 JavaScript 包装的 C 函数返回只读数组,请参阅此答案)。 您可以做的是在 C 函数中为数组分配 malloc 空间,将地址传递给内联 Emscripten,然后使用 Emscripten JavaScript 函数writeArrayToMemory将您的 JavaScript 数组复制到malloc ed 内存中。 像这样的东西...

char *a = malloc(4);

EM_ASM_INT({
    var v1 = new Uint8Array([2,4,6,8]);

    writeArrayToMemory(v1, $0)
    }, a);

printf("the array is [%d, %d, %d, %d]\n", a[0], a[1], a[2], a[3]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM