通过 IPC 连接 Qt4 和 Qt5 进程的最佳方式是什么?

What's the best way to connect a Qt4 and a Qt5 process by IPC?

我想构建一个基于两个独立进程的应用程序。其中之一(流程 1)正在使用 Qt4 访问遗留代码库的功能。另一个(进程 2)是使用 Qt5 的应用程序的 UI 层。

我需要从进程 2 访问进程 1 的功能,我需要从进程 1 访问进程 2 的结果。

谁能提出通过 IPC 连接两个进程的最佳实践?

http://doc.qt.io/qt-4.8/ipc.html

根据 link,您必须在 TCP/IP(QNetworkAccessManager 等)或与 (QSharedMemory) 共享内存之间进行选择。在您的情况下,DBUS 不是一个好主意,因为您正在处理 windows。 我还可以建议看一下 QProcess,通过它您可以让您的 QT5 应用程序执行您的 QT4 应用程序并从标准输出中收集结果。

这在很大程度上取决于您需要交换多少数据以及您对遗留内容的灵活程度。

就我个人而言,如果可能的话,我会选择 QProcess。