如何在C ++中将字节数组发送到另一个进程

时间:2012-11-19 14:07:58

标签: c++ windows process protocol-buffers

我一直在网站上检查一种在C ++中将数据从进程传输到另一个进程的方法。我找到了方法SendMessage()但它似乎不能采取字节数组。

为了解释一下这里的上下文,我有一个应用程序将数据发送到另一个。我们有几个具有不同ID的对象。接收的应用程序为每个不同的对象创建一个选项卡。如果正在接收数据的应用程序关闭,我们将启动一个新进程并向用户显示数据。如果我们第二次发送,我们需要检查ID以查看我们是否已经有一个对象,如果是,则替换它。否则为新对象添加新选项卡。

我们使用谷歌的协议缓冲区,它们使用字节数组进行传输和序列化,这就是为什么我需要找到一种方法将一个字节数组从一个进程发送到另一个进程。

我能够获得该过程的HWND,但我不知道从现在开始的去哪里。

2 个答案:

答案 0 :(得分:3)

进程间通信是特定于平台的事情。在Windows中,有很多方法可以做到这一点。这篇MSDN文章介绍了几种方法及其优缺点和用例:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx

当您控制两个应用程序时,并不关心对第三方应用程序的支持,那么通过SendMessage()将WM_COPYDATA消息发送到另一个进程可能是一个很好的方法。

答案 1 :(得分:2)

如果你想使用SendMessage,你可以使用WM_COPYDATA消息发送一个数据块,尽管它只是一个字节块,而不是一个对象。