c++获得外部程序返回值的问题
非MFC
对不起,不要粘贴的,不好使,谢谢 展开
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