gpt4 book ai didi

javascript - 将 JS 函数传递给 Emscripten 生成的代码

转载 作者:可可西里 更新时间:2023-11-01 01:16:26 26 4
gpt4 key购买 nike

我有一段通过 Emscripten 转换为 JavaScript 的 C++ 代码。我希望转换后的 C++ 代码回调调用它的 JavaScript 代码。像这样的东西:

JavaScript:

function callback(message) {
alert(message);
}

ccall("my_c_function", ..., callback);

C++:

void my_c_function(whatever_type_t *callback) {
callback("Hello World!");
}

这有可能吗?

最佳答案

我认为接受的答案有点过时了。

请引用this bullet point in the "Interacting with code" emscripten tutorial .

例如C:

void invoke_function_pointer(void(*f)(void)) {
(*f)();
}

JS:

var pointer = Runtime.addFunction(function() { 
console.log('I was called from C world!');
});
Module.ccall('invoke_function_pointer', 'number', ['number'], [pointer]);
Runtime.removeFunction(pointer);

这样,C 代码就不需要知道它已被转译为 JS,并且所需的任何桥接都可以完全由 JS 控制。

(被黑入消息编辑器的代码;可能包含错误)

关于javascript - 将 JS 函数传递给 Emscripten 生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358877/

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