从C ++程序

时间:2016-09-24 23:22:50

标签: c++ windows gcc mingw console-application

我有一个控制台应用程序'app.exe',我想从C ++程序调用它,然后就像它是一个命令行一样与它通信。基本上我想围绕另一个控制台应用程序创建一个C ++包装器,以便我可以随意传递输入并接收输出。

在伪代码中,例如:

std:string input("...some parameters..."), output;
Process app("app.exe");
app.InputOutput(input, output);
std::cout<<output;

这一定已经回答了,但我似乎缺乏适当的术语来查找它。

如果重要,我在Windows 10上使用GCC 5.3.0运行Eclipse CDT

编辑:我需要能够重复向'app.exe'发送一些值并重复接收响应,而不是仅仅使用参数调用它。这对于一个小型的个人项目是必需的,所以我不关心它是否是特定于平台的。

2 个答案:

答案 0 :(得分:1)

我在MFC对话框中使用this code作为起点来显示来自被调用进程的输出。这是相当无痛的,因为这有很好的记录。他告诉你为什么他在做什么。它应该适合您使用Windows平台。但正如阿尔弗指出的那样,跨平台是另一回事。

答案 1 :(得分:0)

您可以使用system函数来调用shell(命令行)命令。

该命令可以用你想要的参数执行程序。

system返回进程退出代码,但是对于其他结果,没有直接支持。访问输出的一种简单方法是,对于只完成工作并结束的程序,将程序的输出重定向到文件。

否则,您将不得不使用C ++标准库不支持的管道或Windows邮件槽等通信机制,即您将进入特定于平台的代码。