关于依次启动计算程序问题
我想依次调用三个软件进行计算,也就是第一个软件运行完毕之后,再启动第二个,第二个运行完之后再启动第三个,第三个运行完之后,对计算结果进行处理,然后停止程序。但编程总是出现问题,要么三个软件同时启动,要么启动完一个程序后就处于等待状态,不能再调用下一个程序,请高手指点一下,还有就是在VC软件下调试可以运行,但把输出的可执行程序双击运行时就出错?为什么?我试着调了WaitForMultipleObjects(1,phandle,FALSE,INFINITE,QS_ALLINPUT)中的False和INFINITE,不同值会有不同结果,但就是没找到合适的,该如何设置呢//多个程序依次进行计算
PROCESS_INFORMATION pi;
STARTUPINFO si;
si.cb=sizeof(STARTUPINFO);
si.lpReserved=NULL;
si.lpReserved2=NULL;
si.lpTitle=NULL;
si.cbReserved2=0;
si.lpDesktop=NULL;
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
CString m_ProgPath="E:\\软件1.exe";
CreateProcess(m_ProgPath,NULL,NULL,NULL,0,0,NULL,NULL,&si,&pi);
HANDLE phandle[1];
phandle[0]=pi.hProcess;
if(WAIT_OBJECT_0==WaitForMultipleObjects(1,phandle,FALSE,INFINITE,QS_ALLINPUT))
{
CString m_ProgPath="E:\\软件2.exe";
CreateProcess(m_ProgPath,NULL,NULL,NULL,0,0,NULL,NULL,&si,&pi);
HANDLE phandle[1];
phandle[0]=pi.hProcess;
if(WAIT_OBJECT_0==WaitForMultipleObjects(1,phandle,FALSE,INFINITE,QS_ALLINPUT))
{
CString m_ProgPath="E:\\软件3.exe";
CreateProcess(m_ProgPath,NULL,NULL,NULL,0,0,NULL,NULL,&si,&pi);
HANDLE phandle[1];
phandle[0]=pi.hProcess;
WaitForMultipleObjects(1,phandle2,FALSE,INFINITE,QS_ALLINPUT);
}
......
......