我正试图使用emscripten将字符串从C++发送到JS,但无法在JS中进行适当的转换。
C++
EMSCRIPTEN_KEEPALIVE const char* accessDetails()
{
return func().c_str();
}
func返回std::string。
我得到了一些垃圾值number
。如何在JS中获取字符串
提前谢谢。
当调用这样的原始WebAssembly函数时,只支持基本类型。在这种情况下,返回的指针只是一个数字(指针在JS中是数字,就像在C/C++中一样(。您可以使用该指针从WebAssembly内存中读取字节,并使用例如UTF8ToString(number)
从中生成JS字符串,也可以使用更高级别的绑定系统(如embind(来处理它。
请参阅https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html了解更多信息。