21xrx.com
2025-06-30 12:22:58 Monday
登录
文章检索 我的文章 写文章
如何在C++中调用exe并获取输出结果
2023-07-05 06:49:14 深夜i     68     0
C++ 调用 exe 获取输出结果

在许多任务中,需要调用其他可执行程序来完成任务,并且需要使用 C++ 编程语言。在这种情况下,需要知道如何在 C++ 中调用 exe 并获取其输出结果。

一种常见的方法是使用 Windows API 中的 CreateProcess 函数。该函数可以创建一个新进程,并指定要执行的可执行文件的路径。此外,CreateProcess 还允许在新进程中设置输入和输出的句柄。

以下是一个基本示例代码:

#include <Windows.h>
#include <iostream>
int main()
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  ZeroMemory(&si, sizeof(si));
  si.cb = sizeof(si);
  ZeroMemory(&pi, sizeof(pi));
  if (!CreateProcess(TEXT("C:\\Windows\\System32\\cmd.exe"), NULL, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi))
  
    std::cout << "Unable to create a new process" << std::endl;
    return 1;
  
  WaitForSingleObject(pi.hProcess, INFINITE);
  char buffer[1024];
  DWORD read = 0;
  if (!ReadFile(pi.hProcess, buffer, 1024, &read, NULL))
  
    std::cout << "Unable to read from process" << std::endl;
  
  else
  {
    std::cout << "Output: " << std::string(buffer, read).c_str();
  }
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
  return 0;
}

以上代码将创建一个新的 cmd 进程,并等待该进程完成。然后,它将从进程的输出句柄中读取信息并将其打印到控制台上。

当然,这只是一个简单的示例。如果需要调用不同的可执行文件,并处理其不同的参数和输出,还需要进行修改。但是,这种方法可以为在 C++ 中调用 exe 并获取其输出结果提供一个良好的起点。

  
  

评论区