通过c ++代码控制应用程序

时间:2015-01-25 21:47:25

标签: c++

我在Windows中用C ++编写应用程序,它有一个UI(WxWidgets),用户通常通过其UI使用该应用程序。

现在我有了新的要求,应用程序需要由另一个应用程序启动和控制。

我无法开发DLL或类似的解决方案。

我可以访问我的代码(显然!),其他应用程序是由其他用户开发的,但我可以向他们提供有关如何控制我的应用程序的详细信息。

我的问题是:如何允许其他应用程序通过定义的界面控制我的应用程序?

为简单起见假设我开发了一个计算器(有UI),我想让其他应用程序在我的应用程序上进行数学运算(例如,他们可能会要求我的应用程序添加两个数字等等,因为数学是非常时间的消费,我需要告知他们进度和处理过程中产生的任何错误。

我可以打开管道进行交流吗?

实现这一目标的其他任何方式?

1 个答案:

答案 0 :(得分:1)

您可以将管道或tcp / sockets与自定义协议一起使用,但如果将应用程序分为两部分,可能会更好:

  • 进行计算的一部分
  • 用户界面

并将第一个作为响应JSON请求的http服务器发布。

使用标准协议可以简化测试并提高互操作性(您也可以利用现有的库来实现服务器和JSON编组)。

请注意,除了接受命令之外,您要在消息框中显示的任何错误消息或任何其他嵌套事件循环(如对话框)都需要正确重新连接;如果由于您没有自己编写的外部代码调用而出现消息或对话框,则可能会出现问题。

这是典型的变化,如果提前完成将花费10,现在将花费1000.