Windows 上的进程间通信
我有一个在 Windows 上运行的 TCL 脚本。 我需要与在不同进程中运行的旧 vc++ 6 应用程序进行通信。 我需要进行两种方式的沟通。 在 Linux 中我会使用 dbus,但是对于 Windows 我应该使用什么 IPC 策略?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Boost.interprocess 有多种方式,例如共享- C++ 的内存和消息传递。 您始终可以从那里开始,看看哪些内容与您的脚本兼容。
Boost.interprocess has various ways such as shared-memory and message passing for C++. You could always start there and see what is compatible with your script.
命名管道怎么样?
How about named pipes ?
Windows 上的 Tcl 具有内置的 dde 支持(请参阅 dde 命令的文档),如果其他应用程序支持此功能,这可能会有所帮助。 另一个选项是 TWAPI (Tcl Windows API) 扩展,它具有将键盘和鼠标输入发送到另一个应用程序的功能,请参阅 http://twapi.magicsplat.com/input.html 。
Tcl on windows has dde support built-in (see docs for the dde command) which could help if the other application supports this. Another option is the TWAPI (Tcl Windows API) extension, which has facilities for sending keyboard and mouse input to another application, see http://twapi.magicsplat.com/input.html .
普通的旧套接字在 Windows 上的 TCL 中工作得很好(和 Linux,以及实现 TCP/IP 的任何地方:)
Plain old sockets work great in TCL on Windows (and Linux, and everywhere TCP/IP is implemented :)
MSDN 中的选项列表:http://msdn。 microsoft.com/en-us/library/aa365574(VS.85).aspx
如果您想要更“企业”的东西,还有 Windows 消息队列。
A list of options from MSDN : http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx
If you want something more 'enterprisy', there's also Windows Message Queue.
从 Tcl 的角度来看,如果您的 VC6 应用程序允许,最简单的方法是让 TCL 启动 VC 应用程序,然后使用 stdin 和 stdout 进行通信。 如果这不可能,Tcl socket 命令允许您与另一个进程建立 TCP 套接字连接。
请参阅此处了解第一个和此处了解有关套接字的一些信息。
From the Tcl perspective the simplest way, if your VC6 app allows it, would be to get TCL to start the VC app and then use stdin and stdout to communicate. If that's not possible the the Tcl socket command allows you to establish a TCP socket connection with another process.
See here for details of the first and here for some info on sockets.