emscripten - 如何从 javascript 访问 Emscripten 类型数组?

标签 emscripten

我使用 Emscripten 将 C lib 编译为 javascript 代码。然而,当我尝试将它与我的 Javascript 包装器绑定(bind)时遇到了问题。

我写这个是为了通过引用传递它,我可以通过编译的库访问它。

var str_to_heapu8 = function (str) {
    return allocate(intArrayFromString(str), 'i8', ALLOC_NORMAL);
}

但是,我无法将其检索回正常的 JavaScript 字符串...返回值是一个空字符串。

var heapu8_to_str = function (ptr, len){
    var array = new Uint8Array(len);
    var i = 0;

    while( (ptr+i) < len){
        array[i] = getValue(ptr+i, 'i8');
        i++;
    }

    return intArrayToString(array);
}

如何将其转换回 JavaScript 字符串?

最佳答案

这对我有用:

var heapu8_to_str = function (ptr, len){
    return intArrayToString(HEAPU8.subarray(ptr, ptr+len));
};

关于emscripten - 如何从 javascript 访问 Emscripten 类型数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586273/

相关文章:

c - 模拟 XMM 内在函数时在 WebAssembly 中进行对齐检查?

javascript - 如何使用 Emscripten 将 Hello Word 从 Swift 编译为 JavaScript

file-io - 从 emscripten 中读取用户提供的大文件,一次 block

c - 如何将 OpenSSL 与 emscripten 链接?

emscripten - 断言失败 : native function `int_sqrt` called before runtime initialization error while calling c function in . js 文件 (emscripten)

c++ - 将 C/C++ 套接字传递到 EM_ASM 以用作 Emscripten 中的 websocket

javascript - 将 asm 放入现有的 JS 应用程序中

javascript - 如何在 React/React Native 中使用 Emscripten 编译的 JavaScript

javascript - 使用 Emscripten 将 R 函数编译为 JavaScript

python - 安装emscripten需要什么版本的python?