делаю отлов падений приложения, точнее функции в длл. чтобы типа показать окошко с инфой об ошибке, сохранить некоторые данные итп. имеем такой код в начале функции. функция - метод класса, причем реализованный чистый виртуальный метод базового класса: Код (Text): _try{ __asm { // Создаем структуру EXCEPTION_REGISTRATION: push _except_handler // Адрес функции обработчика исключений. push FS:[0] // Адрес предыдущего EXECEPTION_REGISTRATION. mov FS:[0],ESP // Добавляем в связанный список EXECEPTION_REGISTRATION. } _asm xor ecx, ecx _asm mov [ecx], ecx _except_handler - функция, лежащая в cpp файле, статическая, не принадлежащая никаким классам. в момент исключения хэндлер не вызывается, ни этот, ни _except(1), который ниже. почему так?
ну по разному. в данном случае прога просто вылетает. даже не показывается виндовое сообщение об ошибке
Rascalspb Возьми открой дллку в LordPE обнули если присутствует указатель на директорию LoadConfig + проверь флаг в поле DllCharacteristics чтоб небыл установлен флаг Image do not used SEH (или просто обнули все поле).
PaCHER Да, обнулил поле LoadConfig - теперь сех вызывается. Не мог бы пояснить, отчего такое творицо, и как компилер настроить на очистку этого поля?