我正在开发一个将NodeJS作为库嵌入其中的C ++应用程序。该应用程序应完全按照NodeJS可执行文件的方式运行(运行作为参数提供的JS文件)。但是,我想向JavaScript名称空间公开一些C ++类和函数。只要可以访问v8::Isolate
对象,我就可以这样做。
问题在于,NodeJS几乎只有一个功能:node::Start(argc, argv)
。它接受程序的参数并执行所有操作,并且仅在程序完成后才停止。任何时候我都无法访问为创建C ++而创建的v8::Isolate
对象。
现在,很明显,我可以修改NodeJS源代码,但除非绝对必要,否则我不愿意这样做,因为这对于希望编译我的应用程序的开发人员会增加复杂性。
我还考虑过简单地将node::Start
函数复制粘贴到我自己的代码中,但是它使用的私有函数根本无法工作。
我失去了选择的余地,还是缺少我想解决的东西?