我使用 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/