使用emscripten将字符串从C++传递到JS

3

我正在尝试使用emscripten将字符串从C++发送到JS,但我无法在JS中适当地进行转换。

C++

    EMSCRIPTEN_KEEPALIVE const char* accessDetails()
    {
        return func().c_str();
    }

函数返回std::string。

我在获取一些垃圾值number。如何在JS中获取字符串?
提前感谢。

1个回答

3
当调用类似的原始 WebAssembly 函数时,只支持基本类型。在这种情况下,您会收到一个指针,它只是一个数字(在 JS 中,指针就像在 C/C++ 中一样是数字)。您可以使用该指针从 WebAssembly 内存中读取字节,并使用例如 UTF8ToString(number) 生成 JS 字符串,或者您可以使用其中一个更高级别的绑定系统,例如 embind 来为您处理。
有关更多信息,请参见 https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接