【发布时间】:2011-08-15 21:33:01
【问题描述】:
问题:让两个程序(都在同一台计算机上运行)进行通信和交互的最佳方式是什么? (Windows、C++)
理论情况:
在 Windows PC 上,我有一个第三方软件,您可以用它来做一些事情(例如打开/编辑/保存文件...这并不重要)。此第三方软件有一个可用的C++ SDK,因此您可以为其开发插件。
我开发了一个带有 GUI 的单独 独立 Windows C++ 程序(很可能使用 Qt)。该程序与第 3 方软件在同一台 Windows 计算机上运行。该程序将充当遥控器或发送者。
使用 3rd 方软件的 SDK,我为 3rd 方软件 开发了一个小型 插件。该程序充当接收器,因此我的 Qt GUI 可以发送该插件将接收的命令,从而相应地远程控制第 3 方软件。
因此,作为一个基本示例,我可以在独立 GUI 上按下一个按钮,该按钮将与插件通信,然后在 3rd 方软件中打开指定文件。
我实际上在寻找的是开发独立软件,该软件可以与我为第 3 方软件开发的插件来回通信。
最好的方法是什么?我真的不知道从哪里开始或看什么。有没有常见的 C++ 库可以让这类事情变得简单?
我对 C++ 比较陌生,对 Qt 也很陌生,所以请尝试详细说明。请不要只说“使用共享内存”或类似的话,因为我不知道你在说什么。
该程序不会在单独的计算机上运行,因此我认为这里不需要网络东西。
我正在思考的一些问题:
如果用户同时打开了多个第三方软件副本怎么办。我的独立软件如何知道与哪一个通信?
如果我已经运行了独立软件并打开了第 3 方软件,插件是否必须以某种方式注册或找到我的独立软件才能与之通信?
如果我已经运行了第 3 方软件,然后打开我的独立软件,它是否必须扫描插件以查看其是否在运行或如何找到它?
任何帮助将不胜感激。我已经对 SO 的主题进行了搜索,但没有看到很多专门针对 C++ 的问题,而且大多数问题没有太多答案,或者不是很清楚,或者没有专门提到与插件的软件通信第三方程序。
【问题讨论】:
标签: c++ windows qt communication