Программа с графическим интерфейсом не может выделить консоль в отладчике Qt - PullRequest
1 голос
/ 02 февраля 2011

У меня есть программа с графическим интерфейсом, которая открывает консоль Windows в отдельном окне, чтобы отобразить вывод и принять ввод пользователя. Моя среда разработки - Qt 4.7.1 с mingw. Консоль работает нормально, пока я не попытаюсь запустить программу в отладчике Qt (gdb); затем, хотя AllocConsole завершается успешно, и, кажется, GetStdHandle возвращает действительный дескриптор (0x000000d8), любая попытка использовать дескриптор вызывает ошибку Windows 6 (недопустимый дескриптор).

Так что я не могу отладить свою программу. Который является болью, потому что у него есть серьезные ошибки. Проблема может быть в том, что консоль GDB не позволяет мне открыть собственную консоль; но тогда почему AllocConsole и GetStdHandle преуспевают? Я обновился до Qt Creator 2.0.94 (Qt 4.7.1), но это не помогло. Есть идеи?

Обновление Я обнаружил, что могу отладить программу, запустив ее без отладчика, а затем подключившись к ней из Qt. Не идеально, но лучше, чем ничего.

1 Ответ

1 голос
/ 13 октября 2011

Не можете ли вы использовать стандартную консоль вывода, используя CONFIG + = консоль в файле .pro?

Хм - отметьте это out:

Процесс может быть связан только с одной консолью, поэтому функция AllocConsole завершается ошибкой, если вызывающий процесс уже имеет консоль. Процесс может использовать функцию FreeConsole, чтобы отсоединиться от текущей консоли, затем он может вызвать AllocConsole для создания новой консоли или AttachConsole для подключения к другой консоли.

Можете ли вы попробовать запустить FreeConsole перед тем, как создавать свою?

...