Авто перезапуск приложения после аварийного завершения
От: Uphill  
Дата: 23.06.10 15:29
Оценка:
Уважаемые знатоки MS Visual C++.
Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?
Re: Авто перезапуск приложения после аварийного завершения
От: blackhearted Украина  
Дата: 23.06.10 15:37
Оценка: :)
Здравствуйте, Uphill, Вы писали:

U>Уважаемые знатоки MS Visual C++.

U>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?

По поводу "как отключить вывод на экран сообщения о Runtime Error"
тут начало
тут для ленивых
Re[2]: Авто перезапуск приложения после аварийного завершени
От: Uphill  
Дата: 23.06.10 16:22
Оценка:
Здравствуйте, 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]: Авто перезапуск приложения после аварийного завершени
От: andrey.desman  
Дата: 28.06.10 15:34
Оценка:
Здравствуйте, Uphill, Вы писали:

U>Решение, которое кажется самым простым, не выводить Runtime Error, и перезапустить приложение.

U>Буду благодарен за помощь.

Тебе же сказали, обернуть это в try {} catch(...) {} и компилять с ключем /EHa.
Перезапускаться можешь из catch, или написать отдельного демона, который будет следить за твоим процессом.
Re[4]: Авто перезапуск приложения после аварийного завершени
От: Uphill  
Дата: 28.06.10 15:49
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Здравствуйте, Uphill, Вы писали:


U>>Решение, которое кажется самым простым, не выводить Runtime Error, и перезапустить приложение.

U>>Буду благодарен за помощь.

AD>Тебе же сказали, обернуть это в try {} catch(...) {} и компилять с ключем /EHa.

AD>Перезапускаться можешь из catch, или написать отдельного демона, который будет следить за твоим процессом.

Прошу прощения за простой вопрос — что такое "это", которое следует обернуть в try?
Re: Авто перезапуск приложения после аварийного завершения
От: uzhas Ниоткуда  
Дата: 28.06.10 15:52
Оценка:
Здравствуйте, Uphill, Вы писали:

U>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?


это не поможет для выгрузки приложения при возникновении ошибки?
http://msdn.microsoft.com/en-us/library/sas1dkb2(VS.80).aspx
тип приложения задается при компиляции или в рантайме с помощью функции __set_app_type

перезапуском приложения может заниматься windows service manager (есть возможность выставить у сервиса флажок "перезапустить сервис, если он упадет\его убьют")
Re[5]: Авто перезапуск приложения после аварийного завершени
От: andrey.desman  
Дата: 29.06.10 07:32
Оценка:
Здравствуйте, Uphill, Вы писали:

U>Прошу прощения за простой вопрос — что такое "это", которое следует обернуть в try?


main и функцию/код каждого потока. Любой пипец будет отлавливаться в этом catch, а значит дефолтовый обработчик, который показывает "Runtime error" вызываться не будет. В твоем обработчике надо тихо умереть и перезапуститься.
Re[3]: Авто перезапуск приложения после аварийного завершени
От: Alexey Frolov Беларусь  
Дата: 29.06.10 14:03
Оценка:
Здравствуйте, Uphill, Вы писали:

U>Здравствуйте, blackhearted, Вы писали:


B>>Здравствуйте, Uphill, Вы писали:


U>>>Уважаемые знатоки MS Visual C++.

U>>>Подскажите, пожалуйста, как отключить вывод на экран сообщения о Runtime Error, требующего ответа оператора и автоматически выполнить перезапуск приложения?

подобного рода программу имеет смысл сделать сервисом, а сервис можно настроить так чтобы он автоматически перезапускался при ошибках. почитайте в msdn
Re[2]: Авто перезапуск приложения после аварийного завершени
От: Uphill  
Дата: 02.07.10 05:47
Оценка:
Спасибо.
На многие вопросы я нашёл ответы здесь здесь
Re: Авто перезапуск приложения после аварийного завершения
От: Uphill  
Дата: 02.07.10 05:49
Оценка:
Спасибо.
На многие вопросы я нашёл ответы здесь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.