2011-02-01 5 views
1

출력을 표시하고 사용자 입력을 받아들이 기 위해 별도의 창에 Windows 콘솔을 여는 GUI 프로그램이 있습니다. 내 개발 환경은 mingw와 Qt 4.7.1입니다. Qt의 디버거 (gdb)에서 프로그램을 실행하려고 할 때까지 콘솔이 정상적으로 작동합니다. AllocConsole이 성공하고 GetStdHandle이 유효한 핸들 (0x000000d8)을 반환하는 것처럼 보이지만 핸들을 사용하려고하면 Windows 오류 6 (잘못된 핸들)이 발생합니다.GUI 프로그램이 Qt의 디버거에서 콘솔을 할당 할 수 없습니다.

내 프로그램을 디버깅 할 수 없습니다. 고통이 있습니다. 심각한 버그가 있기 때문입니다. 문제는 gdb의 콘솔이 내 자신의 콘솔을 열지 못하게하는 것일 수 있습니다. 그렇다면 AllocConsole과 GetStdHandle이 성공하는 이유는 무엇입니까? Qt Creator 2.0.94 (Qt 4.7.1)로 업그레이드했지만 도움이되지 않았습니다. 어떤 아이디어?

업데이트 디버거없이 프로그램을 실행 한 다음 Qt에서 프로그램을 디버깅 할 수 있음을 발견했습니다. 이상적이지는 않지만 아무것도없는 것보다 낫다.

답변

1

CONFIG + = console .pro 파일을 사용하여 표준 출력 콘솔을 사용할 수 없습니까?

흠 - this 체크 아웃 : 호출 한 프로세스가 이미 콘솔이 경우 AllocConsole 함수가 실패 있도록

프로세스가 하나의 콘솔과 연관 될 수 있습니다. 프로세스는 FreeConsole 함수를 사용하여 현재 콘솔에서 자신을 분리 한 다음 AllocConsole을 호출하여 새로운 콘솔을 만들거나 AttachConsole을 호출하여 다른 콘솔에 연결할 수 있습니다.

FreeConsole을 만들기 전에 실행 해 볼 수 있습니까?

관련 문제