Неубиваемые консольные окна

Я разрабатываю 2D-симуляцию на основе OpenGL с GLUT под Visual C++ 2008, иногда, когда у меня есть assert() или необработанное исключение и я вхожу в отладчик, окно отображения GLUT закрывается, но окно консоли остается открытым. Они просто не могут быть убит!!!

Они не отображаются в диспетчере задач, Process Explorer или любом другом инструменте, я также не могу найти дескриптор окна с помощью инструмента Spy++.

Хуже всего то, что они предотвращают выключение моей системы (Windows XP), мне приходится вручную отключать питание (и, конечно, я должен запускать chkdsk на своих дисках, и он неизменно находит и исправляет незначительные ошибки после неудачных отключений)

Кто-нибудь сталкивался с такой проблемой?


person rep_movsd    schedule 24.03.2010    source источник
comment
Зачем запускать chkdsk? Разве NTFS не ведет журнал?   -  person Alex Jasmin    schedule 27.03.2010


Ответы (2)


Это проблема с драйвером. Вы ничего не можете сделать, кроме как надеяться, что вы получите обновленный драйвер.

person Stefan    schedule 24.03.2010
comment
Я обнаружил, что это происходит даже в программах, отличных от OpenGL... Возможно, что-то связано с отладчиком VS2008? Вот только недавно перешел на VS2008 с VS2003 (VS2005 обошел вместе с Вистой) - person rep_movsd; 24.03.2010

Я начал замечать это несколько месяцев назад при отладке простого консольного приложения на XP - не уверен, было ли это связано с нашим переходом с VS2005 на VS2008 или каким-то патчем от MS.

person Stephen Nutt    schedule 25.03.2010
comment
Бывает у меня под VS2005. Я думаю, что какой-то патч XP или VS внес эту ошибку. - person user9876; 19.11.2010