Windows에서 콘솔 에뮬레이터를 쓰고 싶습니다. GUI 응용 프로그램에서 cmd.exe (SW_HIDE 사용)를 시작한 다음 AttachConsole을 시작해야합니다.어떻게/언제 할 수 있습니다 AttachConsole 반환 된 dwProcessId CreateProcess 사용하여
// cmdline is a writable L"cmd"
// start_info contains a SW_HIDE
PROCESS_INFORMATION proc_info;
CreateProcess(NULL, cmdline, NULL, NULL, false, 0, NULL, NULL, &start_info, &proc_info);
AttachConsole(proc_info.dwProcessId);
그러나 AttachConsole는 "the specified process does not exist"를 나타낸다 ERROR_GEN_FAILURE (31), 실패.
CreateProcess가 반환되면 AttachConsole이 문제를 해결하기 전에 Sleep(100);
을 추가 했으므로 cmd.exe의 콘솔이 완전히 초기화되지 않은 것으로 보입니다.
그래서 임의 번호를 Sleep하지 않고 AttachConsole을 기다릴 수있을 때까지 기다릴 수 있습니까?