Обработка исключений EXCEPTION_CONTINUE_EXECUTION в DLL
Содержимое статьи:
Регистрация обработчика исключений в DLL
Для регистрации обработчика исключений в DLL необходимо выполнить следующие действия:
- Создание обработчика исключений в функции exported из DLL. Например:
LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS* ExceptionInfo)
{
// Пользовательский код по обработке исключения
return EXCEPTION_CONTINUE_EXECUTION;
} - Экспорт обработчика исключений в заголовочном (.h) файле DLL:
extern "C" __declspec(dllexport) LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS* ExceptionInfo); - Добавление вызова SetUnhandledExceptionFilter в точку входа DLL:
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
// Регистрация обработчика исключений
SetUnhandledExceptionFilter(ExceptionHandler);
}
return TRUE;
}Перехват исключения и возврат EXCEPTION_CONTINUE_EXECUTION
В обработчике исключений необходимо:
- Проверить тип исключения (ExceptionInfo->ExceptionRecord->ExceptionCode).
- Если это требуемый тип исключения, обработать его и вернуть EXCEPTION_CONTINUE_EXECUTION. Например:
if (ExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_ACCESS_VIOLATION)
{
// Обработка нарушения доступа
return EXCEPTION_CONTINUE_EXECUTION;
}
Чат рулетка 2026: чат с неизвестным — это приключение
Чат с Аней: дружеский разговор
Горящие туры в США с перелетом
Женские брюки
Казань - окна VEKA с гарантией качества
Купибилет: Ваш Персональный Помощник в Путешествиях
Новостройки Оренбурга: новое жилье для вашей семьи
Онлайн генератор паролей для аккаунтов
Пиломатериалы для беседок
Подбор шин: Требования к качеству и характеристикам
Рулетка собеседников
Рулетка видеосвязи онлайн
Секреты Вконтакте: самые полезные функции
Вечный хостинг Vdsina: подходит для e-commerce и блогов
Заказ воды онлайн
