1

我目前正在运行两个与同一操作相关的程序。程序 A(用 vb6 编写)是一种“控制器”,它打开设备并启动程序 B(用 C++ 编写),开始收集设备数据。现在,程序 B 需要一种方法将一些 MINOR 数据报告回程序 A。程序 A 还需要监视某些额外的数据,如果信号 1 触发,它需要让程序 B 知道。建立这种沟通的最佳方式是什么?显而易见的方法是每个程序读取和写入的文本/二进制文件(没有最好的方法),而且我还考虑使用 UDP 进行通信,因为机器将位于封闭的网络上。但是,我不确定我应该如何实际执行此操作?

4

4 回答 4

2

命名管道是一个优雅的解决方案,但您甚至可以按照您所说的那样使用文件。

http://support.microsoft.com/kb/177696

如何使用命名管道(C++ 服务器、C# 客户端)

于 2013-06-03T19:27:47.820 回答
2

还有其他选择:剪贴板、COM、数据复制、DDE、文件映射、邮槽、管道、RPC、Windows Sockets

请参阅此处:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx

于 2013-06-03T20:35:40.803 回答
0

就我个人而言,我会选择使用标准协议(如 FTP 或 HTTP)建立通信并传输数据。这样,当您的程序 A 或程序 B 发生变化(或连接介质被换成另一个)时,您仍然可以拥有一个定义明确且易于实现的通信协议。网络堆栈可用于各种 CPU 和操作系统,并且 FTP(或 TFTP)易于实现。

于 2013-06-04T09:01:41.673 回答
0

您如何打开设备并启动程序 B?

我会使用相同的频道进行额外的通信,因为这条线路已经在那里并且正在工作(因为程序 B 已经开始)

于 2013-06-04T07:14:05.170 回答