После обновления большого проекта до Visual Studio 2013 программа обрушила авария (программа перестала работать) на обычном компьютере.
Теперь, когда я отлаживаю эту программу в Visual Studio 2013, я ничего не вижу, кроме последнего сообщения: "Программа" [3948] Server.exe "вышла с кодом -1073740777 (0xc0000417)".
Код определяется в "ntstatus.h" как "Недопустимый параметр C-Runtime"
Думаю, это по крайней мере больше, чем просто сообщение о программе "Остановленная работа".
Есть ли способ уловить эту ошибку? Поскольку проект слишком большой, и некоторые библиотеки могут быть изменены, у меня нет обзора всех вызовов параметров в этой программе.
Поэтому я ищу способ глобально поймать эту ошибку в моей программе, чтобы узнать неверный вызов параметра. Программа также основана на MFC Dialog и не содержит "основного" метода, поэтому я не мог найти способ глобально использовать "_set_invalid_parameter_handler", который, как представляется, является методом C, а не объектным ориентиром вообще.
Спасибо за любую помощь! :)
Могут быть гораздо более простые причины, в моем случае ошибочное значение в _chdrive(), которое получилось отрицательным. Без объяснения того, как и будучи довольно стыдно за эту довольно тупую ошибку, результат не был ошибкой в _chdrive(), но неожиданный выход программы с кодом 0xc0000417 (недействительный параметр времени выполнения).
strcpy_s
,sprintf_s
и т. Д.). Во время обновления вашего проекта, сколько из них вы также обновили, чтобы успокоить предупреждающий барьер, возникший вскоре после этого? Примером паники, которая закрывает ваш процесс, является этот вопрос и ответы . Стоит прочитать.