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 函数返回只读数组,参见 )。你可以做的是 malloc space 用于 C 函数中的数组,将地址传递给内联 Emscripten,然后使用 Emscripten JavaScript 函数 writeArrayToMemory
复制你的 JavaScript 数组放入 malloc
ed 内存中。像这样...
char *a = malloc(4);
EM_ASM_INT({
var v1 = new Uint8Array([2,4,6,8]);
writeArrayToMemory(v1, [=10=])
}, a);
printf("the array is [%d, %d, %d, %d]\n", a[0], a[1], a[2], a[3]);
此代码不正确,但它告诉了我要做什么
char* p = EM_ASM(
var a = new ArrayBuffer(8);
return a;
);
获取 javascript arrayBuffer 的 C 指针的正确方法是什么?
我只想读取 arrayBuffer 而不是写入
据我所知,没有从某些内联 JavaScript 返回数组的直接方法(尽管有一种方法可以从 JavaScript 包装的 C 函数返回只读数组,参见 writeArrayToMemory
复制你的 JavaScript 数组放入 malloc
ed 内存中。像这样...
char *a = malloc(4);
EM_ASM_INT({
var v1 = new Uint8Array([2,4,6,8]);
writeArrayToMemory(v1, [=10=])
}, a);
printf("the array is [%d, %d, %d, %d]\n", a[0], a[1], a[2], a[3]);