【发布时间】:2019-02-11 11:34:31
【问题描述】:
我需要为 Windows 开发一个消息队列,类似于 Unix 中可用的消息队列 IPC,但我做了一些研究,但没有发现任何有用的东西。另外,我不应该使用任何第三方或收费的许可产品。
【问题讨论】:
-
我不太明白问题是什么。 “我需要开发一个消息队列”。这是一个要求,而不是一个问题。
我需要为 Windows 开发一个消息队列,类似于 Unix 中可用的消息队列 IPC,但我做了一些研究,但没有发现任何有用的东西。另外,我不应该使用任何第三方或收费的许可产品。
【问题讨论】:
Windows 上有一个内置的消息队列 (MSMQ)。
【讨论】:
如果两个应用程序都有消息泵,您可以使用WM_COPYDATA 消息在它们之间发送消息。
如果没有,您可以使用CreateNamedPipe 和ConnectNamedPipe,以消息模式创建管道。
请注意WM_COPYDATA 是同步的(意味着发送应用程序将阻塞直到接收应用程序处理完消息),如果这让您担心的话。
【讨论】:
WM_COPYDATA 提供了一个很好的、直接的 IPC 机制,它适用于大多数简单的需求,这就是我提到它的原因。