Здравствуйте, Uphill, Вы писали:
U>Уважаемые знатоки MS Visual C++. U>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
Уважаемые знатоки MS Visual C++.
Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
Re[2]: Авто перезапуск приложения после аварийного завершени
Здравствуйте, blackhearted, Вы писали:
B>Здравствуйте, Uphill, Вы писали:
U>>Уважаемые знатоки MS Visual C++. U>>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
B>По поводу "как отключить вывод на экран сообщения о Runtime Error" B>тут начало B>тут для ленивых
Спасибо за наводку, но у меня, как мне кажется, ситуация иная.
Если позволите — чуть подробнее.
Примерно раз в неделю или в полторы на рабочей машине программа, работающая круглосуточно, совершает ошибку
с примерно таким описанием.
Event Type: Error
Event Source: Application Error
Event Category: None
Event ID: 1000
Date: 30.05.2010
Time: 11:33:51
User: N/A
Computer: PI
Description:
Faulting application skdnt.exe, version 8.2.0.1566, faulting module skdnt.exe, version 8.2.0.1566, fault address 0x0016818e.
Некоторые потоки в ней продолжают работать, а некоторые прерываются или блокируются. В общем — ни то, ни сё.
Нажать на кнопку в окне Runtime Error некому — у компьютера (или удалённо) компетентный человек может появиться лишь через несколько часов, а то и суток.
Решение, которое кажется самым простым, не выводить Runtime Error, и перезапустить приложение.
Буду благодарен за помощь.
Re[3]: Авто перезапуск приложения после аварийного завершени
Здравствуйте, Uphill, Вы писали:
U>Решение, которое кажется самым простым, не выводить Runtime Error, и перезапустить приложение. U>Буду благодарен за помощь.
Тебе же сказали, обернуть это в try {} catch(...) {} и компилять с ключем /EHa.
Перезапускаться можешь из catch, или написать отдельного демона, который будет следить за твоим процессом.
Re[4]: Авто перезапуск приложения после аварийного завершени
Здравствуйте, andrey.desman, Вы писали:
AD>Здравствуйте, Uphill, Вы писали:
U>>Решение, которое кажется самым простым, не выводить Runtime Error, и перезапустить приложение. U>>Буду благодарен за помощь.
AD>Тебе же сказали, обернуть это в try {} catch(...) {} и компилять с ключем /EHa. AD>Перезапускаться можешь из catch, или написать отдельного демона, который будет следить за твоим процессом.
Прошу прощения за простой вопрос — что такое "это", которое следует обернуть в try?
Re: Авто перезапуск приложения после аварийного завершения
Здравствуйте, Uphill, Вы писали:
U>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
перезапуском приложения может заниматься windows service manager (есть возможность выставить у сервиса флажок "перезапустить сервис, если он упадет\его убьют")
Re[5]: Авто перезапуск приложения после аварийного завершени
Здравствуйте, Uphill, Вы писали:
U>Прошу прощения за простой вопрос — что такое "это", которое следует обернуть в try?
main и функцию/код каждого потока. Любой пипец будет отлавливаться в этом catch, а значит дефолтовый обработчик, который показывает "Runtime error" вызываться не будет. В твоем обработчике надо тихо умереть и перезапуститься.
Re[3]: Авто перезапуск приложения после аварийного завершени
Здравствуйте, Uphill, Вы писали:
U>Здравствуйте, blackhearted, Вы писали:
B>>Здравствуйте, Uphill, Вы писали:
U>>>Уважаемые знатоки MS Visual C++. U>>>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
подобного рода программу имеет смысл сделать сервисом, а сервис можно настроить так чтобы он автоматически перезапускался при ошибках. почитайте в msdn
Re[2]: Авто перезапуск приложения после аварийного завершени