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

Pass string from C++ to JS using emscripten

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

C++

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

函数 returns 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