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

标签 c++ windows process protocol-buffers

我一直在网站上查看是否有一种方法可以使用 C++ 将数据从一个进程传输到另一个进程。我找到了 SendMessage() 方法,但它似乎无法获取字节数组。

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

我们使用来自谷歌的 Protocol Buffer ,它们使用字节数组进行传输和序列化,所以这就是为什么我需要找到一种方法将字节数组从一个进程发送到另一个进程。

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

最佳答案

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

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

当您控制这两个应用程序,并且对第 3 方应用程序的支持对您来说无关紧要时,然后发送 WM_COPYDATA通过 SendMessage() 向其他进程发送消息可能是一个好方法。

关于c++ - 如何在 C++ 中将字节数组发送到另一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455475/

相关文章:

c++ - 在函数参数中连接字符串和变量?

c++ - 模板非类型参数+左值/右值

c++ - 如何将 FASM 变量导出到 VC++ Express 2012?

android - 如何在 Windows 上运行 React Native 官方示例的 packager?

c++ - C++ 中的网络适配器信息

python - 进程内存使用输出

android - 从 Thread.UncaughtExceptionHandler 启动服务?

c++ - Boost vector 与 STL vector

windows - 无法在 Windows 7 上以管理员身份运行 InstallShield 应用程序

C 信号不能正常工作