C ++ - ловить все исключения? - PullRequest
1 голос
/ 02 сентября 2011

Я хочу внедрить DLL в процесс.Как только эта DLL будет там, она должна перехватить и правильно обработать все исключения нарушения доступа, которые происходят в процессе.Есть ли способ сделать это?

Ответы [ 4 ]

4 голосов
/ 02 сентября 2011

Как насчет SetUnhandledExceptionFilter ( function )?

Прототип функции :

LONG __stdcall ExceptionHandler(EXCEPTION_POINTERS *ExceptionInfo);

Я использовал эту функцию длясоздавать аварийные дампы и т. д.

1 голос
/ 02 сентября 2011

Вы можете использовать Структурированную обработку исключений (SEH), чтобы перехватывать такие исключения.В частности, эта функция Windows, кажется, то, что вы хотите сделать.

0 голосов
/ 02 сентября 2011

Pre XP, вы не можете перехватить все исключения. XP или более поздняя версия, вы должны использовать AddVectoredExceptionHandler(1, handler), хотя вам не гарантируется, что вы всегда будете первым обработчиком векторных исключений.

0 голосов
/ 02 сентября 2011

Для завершения коллекции вы также можете использовать AddVectoredExceptionHandler .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...