我正在使用nodejs并希望运行我在C ++中创建的程序,这可能吗?到目前为止,已经找到了有关如何在nodejs中运行C ++库的信息,但没有允许我在c ++中使用nodejs的工具
答案 0 :(得分:3)
nodejs是一个独立的执行环境。您从命令行运行它作为它自己的进程,它启动nodejs解释器,然后该解释器加载您选择的脚本并运行它。它没有将它链接到您自己的C ++程序的方法。所以,这里有一些其他类型的选项:
从C ++程序中,您可以将nodejs程序作为一个单独的进程运行,使用spawn或exec,并从nodejs程序中检索任何输出(比如输出文件),或者让它写入通信通道,例如stdout这样你的C ++程序就可以检索输出。
从您的C ++程序中,您可以启动您的nodejs程序,然后您的nodejs程序可以启动一个服务器(普通套接字服务器,http服务器,socket.io服务器等...),通过该服务器,C ++程序可以向nodejs服务器发送请求,然后检索响应。您只需让nodejs服务器侦听预定的端口号(例如8088),然后您的C ++程序就可以连接到端口8088上的localhost。
nodejs本身有一个插件机制,您可以通过该机制从nodejs中调用C ++代码。实际上,nodejs运行时的某些部分(例如文件I / O)实际上是用C ++实现的,而nodejs可以通过这个插件接口调用它们。请注意,这不允许您从C ++应用程序中调用任意nodejs应用程序。这允许nodejs app调用一些用C ++实现的代码。您可以将其视为nodejs调用DLL中实现的函数,该函数碰巧是用C ++编写的。