将C ++函数编译为Wasm

时间:2017-04-30 03:28:19

标签: emscripten webassembly

我在关于wasm和第3点之后阅读了这个tutorial。“调用C中定义的自定义函数”我试图弄清楚如何以这种方式将C ++函数和类绑定到JavaScript?我必须在那里使用Embind,但是如何?

我也发现了这个thread,@lacenen的第二个答案可能是一种解决方法。

1 个答案:

答案 0 :(得分:0)

大多数时候你只需要在WASM中调用一个函数。 所以简单的方法:

#ifdef __cplusplus
extern "C" {
#endif

void EMSCRIPTEN_KEEPALIVE MyFunc()
{
    printf("MyFunc()\n");
}

#ifdef __cplusplus
}
#endif

使用EmScripten进行编译,您将获得一个定义了Module的.js文件。 所以在JavaScript方面你可以使用ccall - 这是没有参数或返回值的调用:

Module.ccall('MyFunc', null, null, null);

请参阅:https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#interacting-with-code-ccall-cwrap