SetUnhandledExceptionFilter в VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

SetUnhandledExceptionFilter в VB

Сообщение xenomorph » 19.11.2006 (Вс) 18:04

Привет всем!

Установка глобального обработчика ошибок

Прогуглился - не нашёл.

Кто-нить сталкивался с SetUnhandledExceptionFilter?
Дайте пожайлуста код с примером \ пошлите по ссылке.
--
Заранее спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.11.2006 (Вс) 18:09

ЛОЛ. А в API-Guide что?
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 19.11.2006 (Вс) 19:00

Код: Выделить всё
Declare Function SetUnhandledExceptionFilter Lib "kernel32" (ByVal lpTopLevelExceptionFilter As Long) As Long

Type EXCEPTION_POINTERS
    pExceptionRecord As Long
    pContextRecord As Long
End Type

Type EXCEPTION_RECORD
    ExceptionCode As Long
    ExceptionFlags As Long
    pExceptRecord As Long
    ExceptionAddress As Long
    NumberParameters As Long
    ExceptionInformation(2) As Long
End Type

'using
SetUnhandledExceptionFilter AddressOf GPF_Exception

Function GPF_Exception(ByRef lpExceptionPointers As EXCEPTION_POINTERS) As Long
'Не ставить обработчик ошибок!!!!!!!!!

    Err.Raise 1, , "General Protection Failure"

End Function
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2006 (Вс) 19:11

xenomorph, раз.

tag_warning
Изображение

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 19.11.2006 (Вс) 19:12

2 Sebas
--
ОНО! Пасибо Большое и красивое!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 19.11.2006 (Вс) 19:24

2 Sebas:

эээ - а почему оно НЕ ВСЁ обрабатывает?

я ему скормил Msgbox 2 / 0,

а оно НЕ перехватівает еррор. Вай?
(в ассемблере - всё перехватывало ...) ...
--
Пытаюсь накодить SEH вставочку для ВСЕГО приложения,
а не тыкать где ни попадя On Error ///
--
Module:
Код: Выделить всё
Option Explicit
Declare Function SetUnhandledExceptionFilter Lib "kernel32" (ByVal lpTopLevelExceptionFilter As Long) As Long
Type EXCEPTION_POINTERS
    pExceptionRecord As Long
    pContextRecord As Long
End Type
Type EXCEPTION_RECORD
    ExceptionCode As Long
    ExceptionFlags As Long
    pExceptRecord As Long
    ExceptionAddress As Long
    NumberParameters As Long
    ExceptionInformation(2) As Long
End Type

Public Sub SetSEH()
    SetUnhandledExceptionFilter AddressOf GPF_Exception
End Sub
Function GPF_Exception(ByRef lpExceptionPointers As EXCEPTION_POINTERS) As Long
'Не ставить обработчик ошибок!!!!!!!!!
    Err.Raise 1, , "General Protection Failure"
End Function


Код: Выделить всё
Option Explicit
Private Sub Form_Load()
    Call SetSEH
    Call Test
End Sub
Private Sub Test()
    MsgBox 2 / 0
End Sub


Где криво?
--
Пасиб!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 19.11.2006 (Вс) 21:27

p.s. то же касается примера из АПИ гайда ...

конструкции типа:

Код: Выделить всё
MsgBox CLng("123sdf123")


неинициализированые объекты ...

и т.п. НЕ перехватываются SetUnhandledExceptionFilter
т.е. глобальный перехватчик не поставить?

ВБ втыкает свою обработку?
т.е. SetUnhandledExceptionFilter - до лампочки?[/code]
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2006 (Вс) 21:49

xenomorph писал(а):ВБ втыкает свою обработку?
т.е. SetUnhandledExceptionFilter - до лампочки?

Ессно. Кучу раз это обсуждалось.
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 20.11.2006 (Пн) 10:02

xenomorph

Ошибка VB не есть ошибка защиты виндовс.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList