在程序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);