在程序A中,需要调用执行程序B,并且要等待B结束后,才返回A继续执行。
即:A --> B -->A
方法
使用CreateProcess 创建进程,使用WaitForSingleObject等待结束信号
代码
HANDLE hNewProcess= NULL; STARTUPINFOA si = { sizeof(si) }; PROCESS_INFORMATION piProcess; BOOL ret =CreateProcessA("b.exe",NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&piProcess); if(ret == TRUE) hNewProcess = piProcess.hProcess; //等待进程结束 WaitForSingleObject(hNewProcess,INFINITE);
注:如果不需要阻塞,可使用ShellExecuteA函数,更简单
ShellExecuteA(NULL,"open","kinect.exe",NULL,NULL,SW_SHOWNORMAL);