c++获得外部程序返回值的问题

2025-04-28 19:53:58
推荐回答(1个)
回答1:

STARTUPINFOA si;  

PROCESS_INFORMATION pi;  

   

ZeroMemory(&pi,   sizeof(pi));   

ZeroMemory(&si,   sizeof(si));   

si.cb=sizeof(STARTUPINFOA);   

   

TCHAR cmd[256] = _T("test.exe");  //设置外部程序名

BOOL working = ::CreateProcess(NULL,cmd,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS ,NULL,NULL,&si,&pi);  //建立程序

if (working == 0)  //打开错误


{  

DWORD error = GetLastError();  

cout << "CreateProcess Error : " << error << endl;  

getchar();  

return 0;  

}  

   

WaitForSingleObject(pi.hProcess, INFINITE);  //等待程序结束

   

unsigned long Result;    

GetExitCodeProcess(pi.hProcess, &Result);  //得到程序返回值

   

cout << "Exit Code : " << Result << endl;  //输出返回值


很好用呀,你程序返回值是什么类型的数据?

我不知道你的text.exe是什么样的,我用ipconfig.exe代替,执行结果如下

如果你不想看被调用程序的输出,可以将CreateProcess()函数里的NORMAL_PRIORITY_CLASS改成NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW