我希望嵌入 v8 并有一个可用的模块,该模块可导出调用 c++ 代码的函数。例如,假设 main.js 中有类似以下内容的内容:
import {foo} from 'FooBar';
foo();
有没有办法让 foo 调用本机 C++ 代码?寻找正确方向的推动力,提前致谢!
如果您使用的是 V8 的最新版本,则有一个名为 SyntheticModule 的新模块子类,它可以让您创建一个虚拟模块,您可以在其中直接设置导出。
Local<Function> foo_func = ...;
Local<Module> module = Module::CreateSyntheticModule(
isolate, name,
{String::NewFromUtf8(isolate, "foo")},
[](Local<Context> context, Local<Module> module) {
module->SetSyntheticModuleExport(String::NewFromUtf8(isolate, "foo"), foo_func);
});
// link `module` just like a normal source-text module.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)