21xrx.com
2024-09-20 00:55:57 Friday
登录
文章检索 我的文章 写文章
如何在C++中调用exe并获取输出结果
2023-07-05 06:49:14 深夜i     --     --
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 并获取其输出结果提供一个良好的起点。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章