gpt4 book ai didi

javascript - 使用 Emscripten 调用函数指针

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:11 24 4
gpt4 key购买 nike

使用 Emscripten,是否可以从 JavaScript 调用函数指针(因此,一个数字)?
函数的签名是可变的,所以我无法编写一个帮助程序并完成。

为了说明一个例子,我有一个这样的函数:

// Returns a function pointer to call, with the appropiate
// arguments, to initialize the demanded feature.
void* get_feature_activator(feature_t feat);

您应该按如下方式使用它:

// Initialize the speaker
void* activator = get_feature_activator(FEATURE_SPEAKER);
// We know this function needs one float, so we cast and call it
((void(*)(float))activator) (3.0);

用 JavaScript 做同样的事情:

var activator = _get_feature_activator(constants.FEATURE_SPEAKER);
// TODO: Need to call this pointer with one float

最佳答案

您可以使用 Runtime.dynCall 从 JS 调用 C 函数指针。参见示例

https://github.com/kripken/emscripten/blob/ee17f05c0a45cad728ce0f215f2d2ffcdd75434b/src/library_browser.js#L715

参数是(类型签名、指针、参数数组)。例如,类型'vi'表示返回void,接收一个整型参数。这对应于您可以在生成的代码中看到的 FUNCTION_TABLE_vi。

关于javascript - 使用 Emscripten 调用函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25576458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com