Корректная выгрузка dll

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

Корректная выгрузка dll

Сообщение Yurio » 04.04.2006 (Вт) 8:11

При попытке выгрузить некоторые dll с помощью FreeLibrary из АП своего процесса иногда падает сам процесс (имеется ввиду не kernel32.dll, user32.dll, msvbvm60.dll и т.п., а dll, применяемые для глобального хука; в архиве исходник и примеры таких dll). Что с этим можно поделать?
Вложения
FreeLibrary.rar
(96.52 Кб) Скачиваний: 33

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.04.2006 (Вт) 10:11

Может снять хук :roll: ? И вообще, раз падает, значет код dll где-то используется, значит надо сделать так, что бы не использовался :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Yurio
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 13.11.2005 (Вс) 17:54

Сообщение Yurio » 05.04.2006 (Ср) 20:22

снять хук

Так ведь заранее неизвестно, что за библиотеку пытается выгрузить моя программа и каким именно образом эта dll была загружена. А снятие хука, ИМХО, чревато новыми глюками. Да и как можно снять чужой глобальный хук, кроме как прибиванием этого самого чужого процесса?

что бы не использовался

Интересная мысль, ее бы развить... :wink:


1 ответ за 38 часов :x

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.04.2006 (Ср) 23:32

Если это чужой глобальный хук, то вообще сомнительно, что ты сможеш ее выгрузить.
Кроме того юзай правило - кол-во LoadLibrary в твоей программе должно равняться числу FreeLibrary(касательно к каждому хэндлу, разумеется).
Тогда никаких глюков быть вообще не должно.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Yurio
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 13.11.2005 (Вс) 17:54

Сообщение Yurio » 06.04.2006 (Чт) 23:25

сомнительно, что ты сможеш ее выгрузить

Например, correct.dll от Punto Switcher'a нормально выгружается...

Неужели ни у кого нет идей :?:

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

Сообщение keks-n » 07.04.2006 (Пт) 19:12

Мне лично интересно зачем хук вообще снимать? Это сильно чревато глюкакми. Лучше сделать ActiveX EXE без форм(тогда на него не подействует SetWindowsHookEx) и поместить в него код для выполнения которого присутствие лишних DLL нежелательно.
Также было бы не плохо перехватывать OpenProcess, чтобы предотвратить чужеродное воздействие.

З. Ы. Я когда пытался избавиться от перехватчика в UTK, тоже сначала пошёл по пути FreeLibrary-сплошные Access violation, потом прибивание процесса перекинул в другой EXE, и всякие там Immortal стали пришибаться на ура(свежий UTK не кину, т. к. теперь это мой закрытый проект)
Изображение

Yurio
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 13.11.2005 (Вс) 17:54

Сообщение Yurio » 08.04.2006 (Сб) 20:16

ActiveX EXE не помогает - как dll цеплялись, так и цепляются. Да и от форм с классами VBMsoStdCompMgr и ThunderRT6Main никуда не денешься :cry:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.04.2006 (Сб) 21:28

Yurio писал(а):Да и от форм с классами VBMsoStdCompMgr и ThunderRT6Main никуда не денешься :cry:
Галочка Unattended execution.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


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

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

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

    TopList  
cron