SetUnhandledExceptionFilter

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

SetUnhandledExceptionFilter

Сообщение Kovu » 18.02.2006 (Сб) 22:07

Как получить из структуры
Public Type EXCEPTION_POINTERS
pExceptionRecord As EXCEPTION_RECORD
ContextRecord As CONTEXT
End Type

Библиотеку вызвавшую ошибку?
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение tyomitch » 18.02.2006 (Сб) 22:44

Перебрать все загруженные библиотеки, сравнить этот адрес с их адресами.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 18.02.2006 (Сб) 22:46

А как определить что дарес принадлежит именно этой библиотеке
(кст ты про адрес, который передается в EXCEPTION_RECORD.ExceptionAddress As Long ? )
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение tyomitch » 18.02.2006 (Сб) 23:26

Если адрес заключён между modBaseAddr и modBaseAddr + modBaseSize, значит принадлежит.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 20.02.2006 (Пн) 12:23

Tyomitch, извини может туплю, но как по хэндлу модуля получить его адрес в памяти?
Если всё делать своими ручками, они скоро отвалятся !

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.02.2006 (Пн) 12:31

Хэндл модуля и есть адрес в памяти...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 20.02.2006 (Пн) 12:36

GSerg
Спасибо, я насчет этого не был уверен :roll:
Тогда вопрос серьезней: как узнать его размер? (или достаточно знать просто размер файла библиотеки?)
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение tyomitch » 20.02.2006 (Пн) 15:57

Kovu, а как ты, интересно, перебираешь библиотеки в процессе?
Не через Module32Next? :roll:
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 20.02.2006 (Пн) 17:39

tyomitch
Я их вообще не перебираю, так как мне продолжать выполнение программы нужно при ошибках в конкретных библиотеках, хэндлы которых я получаю через GetModuleHandle
Уже разобрался . Всем спасибо :)
Если всё делать своими ручками, они скоро отвалятся !


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

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

Сейчас этот форум просматривают: Google-бот и гости: 76

    TopList