21xrx.com
2025-01-12 19:20:47 Sunday
文章检索 我的文章 写文章
如何在C++中调用exe文件并获取其返回值
2023-07-04 20:11:09 深夜i     25     0
C++ 调用 exe文件 返回值

在C++中,可以使用系统调用或者第三方库来执行外部的可执行文件,并且获取其返回值。

使用系统调用

在Windows系统中可以使用system()函数来调用外部可执行文件,并获取其返回值。system()函数会将可执行文件作为其参数,并返回该程序的退出状态码。

int result = system("my_program.exe");

该程序的退出状态码通常是一个整数值,0表示程序运行成功,其他值表示程序运行失败或出现错误。

使用第三方库

有一些第三方库可以在C++中直接调用外部的可执行文件,比如Boost.Process库和Poco库等。

使用Boost.Process库来如下:

bp::ipstream input_stream;

bp::child c("my_program.exe", bp::std_out > input_stream);

c.wait();

std::string output;

std::getline(input_stream, output);

使用Poco库来如下:

Poco::Pipe outPipe;

Poco::ProcessHandle ph = Poco::Process::launch("my_program.exe", {}, &outPipe, nullptr);

Poco::PipeInputStream istr(outPipe);

std::string output;

Poco::StreamCopier::copyToString(istr, output);

int exitCode = Poco::Process::wait(ph);

其中,boost::process::ipstream类和Poco::PipeInputStream类可以用来获取外部程序的输出。

总结

以上是C++中调用外部可执行文件并获取其返回值的两种方法。使用system()函数是比较简单的方法,但是无法获取外部程序的输出。而使用第三方库可以比较方便的获取输出,并且具有更多的扩展性和灵活性。

  
  

评论区