C++和JS程序之间的共享内存

9

我想在两种不同类型的程序之间使用共享内存;C++ 和 JavaScript。C++ 程序应该向内存中写入,JS 程序应该同时从相同的内存区域读取。这是否可能?


2
在哪个平台上?(跨平台吗?)您使用哪个JS引擎,您是使用库从C++中启动JS引擎(即JS和同一个进程中),还是通过调用外部进程来启动它(即我们谈论的是进程间通信)? - leemes
在Linux系统中使用Extjs引擎。首先运行JS程序,通过调用外部进程调用C++程序,然后将响应返回给JS程序。 - user2293743
你可以打开一个套接字并将 JSON 写入其中。 - Grady Player
然后将响应返回给js程序,这不需要共享内存。在C++程序中,您可以简单地写入进程的标准输出(cout),并从JS中,在您执行该进程的位置读取它。我不知道API,但是这样应该是可能的。 - leemes
也许更好的做法是知道我想要做什么,我想在页面上显示ping命令的响应。因此,我使用popen()执行ping命令,并希望将响应返回给js应用程序,而不是从c++应用程序返回。因此,我决定使用共享内存。 - user2293743
显示剩余3条评论
1个回答

0

浏览器无法真正做到这一点。但是,有三种可能的方法可以实现您想要的:

  1. 构建一个RESTful服务,您的C++可以POST到该服务,从而触发Web套接字以更新浏览器中的JS。或者让JS轮询该服务。

  2. 或者让您的浏览器页面嵌入指向文件系统上的HTML页面的iFrame,该文件系统由您的C++程序编写/更新。

  3. 或者假设这是针对内部网络的,您可以编写一个ActiveX控件,它将允许IE做任何事情。但是,由于您正在使用Linux,因此您必须使用IEs4Linux和/或WINE。

希望这可以帮助您。


1
他很明显在谈论nodejs。 - Pacerier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接