【问题标题】:Pass string from C++ to JS using emscripten使用 emscripten 将字符串从 C++ 传递给 JS
【发布时间】:2021-12-08 13:19:45
【问题描述】:

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

C++

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

func 返回 std::string。

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

【问题讨论】:

    标签: javascript webassembly emscripten


    【解决方案1】:

    当调用像这样的原始 WebAssembly 函数时,仅支持基本类型。在这种情况下,您将返回一个只是数字的指针(指针在 JS 中是数字,就像在 C/C++ 中一样)。您可以使用该指针从 WebAssembly 内存中读取字节,并使用例如 UTF8ToString(number) 从中生成一个 JS 字符串,或者您可以使用更高级别的绑定系统之一,例如 embind 来为您处理它。

    更多信息请参见https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多