0
嗨我想執行一個系統命令allegro並等待它完成,因爲我需要訪問這個命令生成的文件。我的代碼不起作用。有人可以幫忙嗎?命令沒有運行?它工作,如果我做系統(command.c_str()),但不等。Waitforsingleobject檢測系統命令退出
string command = "start allegro -expert -nographic -s " + fileName1 + " " + boardFile1;
bool ret;
bool retwait;
STARTUPINFO startupinfo;
GetStartupInfo (&startupinfo);
PROCESS_INFORMATION pro2info;
LPTSTR cmdL = (LPTSTR)command.c_str();
ret = CreateProcess(NULL, cmdL, NULL, NULL, false, CREATE_NEW_CONSOLE, NULL,NULL, &startupinfo, &pro2info);
cout<<"hProcess: "<<pro2info.hProcess<<endl;
cout<<"dwProcessId: "<<pro2info.dwProcessId <<endl;
//Want to wait till the command executes
while (retwait= WaitForSingleObject (pro2info.hProcess, INFINITE)!=WAIT_OBJECT_0)
cout<<"waitprocess:true"<<endl; //The process is finished;
CloseHandle (pro2info.hProcess);
如果命令是正確的,那麼'system'功能*應*等待它完成,否則將無法返回命令的退出狀態。 –
你怎麼知道你的代碼「不工作」?當你運行它會發生什麼?你不檢查任何地方的錯誤?請詳細說明。 –