在 Chromium 中添加自定义 C++ 函数并在浏览器中调用它们

Adding Custom c++ function in chromium and call them in browser

我正在尝试在 v8/src/init 下的 bootstrapper.cc 中编写自定义函数。

 int helloworld(){
  return 0;
}

当它尝试从 chromium 控制台调用它时,它抛出未定义。

四处看看 bootstrapper.cc 看看其他内置函数是如何安装的。您可以查看的示例包括 ArrayDataView(或者任何其他,真的)。

无法简单地定义给定名称的 C++ 函数并将其显示在 JavaScript 中。相反,您必须在全局对象上定义一个 属性;并且函数本身需要具有正确的调用约定,并适当地处理其参数/准备其 return 值,以便可以从 JavaScript 调用它。你不能只拿 or return 一个 int.

如果您发现使用 C++ 不方便,另一种方法可能是开发一个 Chrome 扩展,这样您就可以使用 JavaScript 来实现,并且无需compile/maintain/update 您自己的构建(这是一项 很多 的工作!)。没有关于如何按照您要求的方式扩展 V8 的现有指南,因为这种方法工作量太大,我们不建议这样做(尽管当然有可能——您只需要阅读足够的内容现有的 C++ 源代码以了解它是如何完成的)。