html52.com
我爱小程序-开发者交流社区

wasm的胶水js该如何修改以适配WXWebAssembly?

比如一个最简单的hello world cpp通过Emscripten编译成hello.wasm和胶水js:hello.js.

//hello.cc
#include <stdio.h>


#ifndef EM_PORT_API
#   if defined(__EMSCRIPTEN__)
#       include <emscripten.h>
#       if defined(__cplusplus)
#           define EM_PORT_API(rettype) extern "C" rettype EMSCRIPTEN_KEEPALIVE
#       else
#           define EM_PORT_API(rettype) rettype EMSCRIPTEN_KEEPALIVE
#       endif
#   else
#       if defined(__cplusplus)
#           define EM_PORT_API(rettype) extern "C" rettype
#       else
#           define EM_PORT_API(rettype) rettype
#       endif
#   endif
#endif


EM_PORT_API(int) show_me_the_answer() {
    return 42;
}


EM_PORT_API(float) add(float a, float b) {
    return a + b;
}


int main() {
    printf("Hello World-\n");
    return 0;
}


在普通的html中可以顺利调用:

    <script>
        Module = {};
        Module.onRuntimeInitialized = function() {
            //do sth.
            Module._main();
            console.log(Module._add(12, 1.0));
        }
    </script>
    <script src="hello.js"></script>

在小程序中似乎只WXWebAssembly.instantiate(path, imports)

请问该如何修改胶水js以适配呢?WebAssembly.RuntimeError等需要修改成WXWebAssembly.xxx吗?

能否帮忙提供一个小程序调用c++ 转化的wasm的最小示例?谢谢!

(或者说小程序还提供其他更方便地使用c++进行密集运算的方式吗?)


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付