VC异步调用外部程序出现的问题
我在主程序中调用外部程序,直到外部程序结束主程序才继续执行。用如下方法调用
// CString strMsg;
// strMsg=(CString)"start to Execute other exe"+ strCmdLine;
// AfxMessageBox(strMsg);
CString strWorkPath;
strWorkPath = strCmdLine.Left(strCmdLine.GetLength()-strCmdLine.ReverseFind('\\') -2);
PROCESS_INFORMATION lpPI;
STARTUPINFO si={0};
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWMAXIMIZED;
CreateProcess(NULL,
strCmdLine.GetBuffer(strCmdLine.GetLength()),
NULL,NULL,FALSE,
0,
NULL,
strWorkPath.GetBuffer(strWorkPath.GetLength()),
&si,
&lpPI);
DWORD rc = WaitForSingleObject(lpPI.hProcess ,INFINITE);
DWORD exitcode;
GetExitCodeProcess(lpPI.hProcess,&exitcode);
//for debug
//AfxMessageBox("End of execute other exe");
生成打包后,在一些机器上运行正常,但是在另外一些机器上则好像没调用外部程序似的,都是WIN2000PROFESSIONAL,真是奇怪呀!而且,在运行正常的机器上安装完我的安装包后,它会提示要重启,而运行不正常的机器则没有这个提示,我用的是InstallShield打包的。