VC ++ формирует централизованную обработку исключений приложений, аналогичную приложениям C # форм на платформе .net - PullRequest
0 голосов
/ 27 сентября 2010

Я новичок в VC ++, и у меня есть хороший опыт работы с C # на платформе .net. В настоящее время я нахожусь в проекте, который представляет собой комбинацию VC ++ и C # на платформе .net.

Я использовал для добавления централизованной обработки исключений для всех приложений форм Windows, разработанных с использованием C #. Что я имею в виду под централизованным исключением здесь означает что-то вроде этого http://www.codeproject.com/KB/cs/GlobalExceptionHandling.aspx

Теперь проблема в том, что в моем новом проекте есть устаревшее приложение на VC ++. В проект были внесены изменения, так что он компилируется в Visual Studio 2008, но код все еще неуправляемый VC ++. Я вижу много {try catch} в настоящем коде, и исключения обрабатываются локально, а приложение не узнает о последствиях.

Я хотел знать, могу ли я добавить централизованную обработку исключений в это устаревшее приложение форм VC ++, как я делаю это для приложений форм C # (используя CurrentDomain_UnhandledException и т. Д.). Если да, где я могу добавить обработку исключений и как ее добавить. Пример иллюстрации был бы очень полезен.

1 Ответ

0 голосов
/ 27 сентября 2010

Вы можете использовать set_unexpected (<exception>).

В качестве альтернативы, вы можете использовать функцию SetUnhandledExceptionFilter;которая позволяет приложению заменять обработчик исключений верхнего уровня каждого потока процесса.

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

...