ShellExecute(this->m_hWnd ,"open","svm-train.exe","output_train.txt","",SW_HIDE);
AfxMessageBox("训练结束!");
第一句没执行玩,下一句就执行了,这样导致我以为程序执行完了,就会接着执行下面的程序,就会出错。
为什么不是执行完第一句,才执行第二局呢,第一次发帖,还请大虾们指教啊。
AfxMessageBox("训练结束!");
第一句没执行玩,下一句就执行了,这样导致我以为程序执行完了,就会接着执行下面的程序,就会出错。
为什么不是执行完第一句,才执行第二局呢,第一次发帖,还请大虾们指教啊。
Sleep(500);
AfxMessageBox("训练结束!");
ShellExecuteEx
WaiForSingleObject
ShellExecuteEx
WaitForSingleObject
如果想达到你的目标,你可以用CreateProcess创建一个进程,获得一个进程句柄,然后用WaitForSingleObject等待这个句柄,这样能达到你的目的。
{
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0}; si.cb = sizeof(STARTUPINFO); if(!CreateProcess(lpFile, lpCmdLine, NULL, NULL, NULL, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi))
{
return FALSE;
}
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return TRUE;
}