Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.01;
Скачать: CL | DM;

Вниз

выгрузка   Найти похожие ветки 

 
KJ   (2007-05-30 19:44) [0]

Пишу длл и хочу вней написать динамическую выгрузку себя
тоесть чтоб прога не держала мою длл

ЗЫ обычно это в проге  выгружают но хочу в длл
или как можно другой прогой скажем "отпустить требуюмую длл"


 
Desdechado ©   (2007-05-30 19:49) [1]

LoadLibrary
FreeLibrary


 
KJ   (2007-05-30 20:58) [2]

LoadLibrary делает прога, исходников которых нет

а как у себя сделать FreeLibrary ?

HMODULE hLibModule не извесен, но есть путь и имя


 
Riply ©   (2007-05-30 21:17) [3]

> [2] KJ   (30.05.07 20:58)
>LoadLibrary делает прога, исходников которых нет
HMODULE hLibModule не извесен, но есть путь и имя
А кто мешает его узнать(как один из вариантов) в самой DLL ?
>а как у себя сделать FreeLibrary ?
FreeLibraryAndExitThread ?
Не помню точно названия :(


 
Loginov Dmitry ©   (2007-05-30 21:17) [4]

Самовыгрузка DLL - это нечто ))
Есть подозрение, что FreeLibrary без AV не сработает.


 
Riply ©   (2007-05-30 21:19) [5]

> [4] Loginov Dmitry ©   (30.05.07 21:17)
>Самовыгрузка DLL - это нечто ))
>Есть подозрение, что FreeLibrary без AV не сработает.
Зависит от личных отношений целевого процесса и DLL - ки :)


 
Riply ©   (2007-05-30 21:22) [6]

> [5] Riply ©   (30.05.07 21:19)
В принципе, ihmo, можно выгрузить как из самой DLL - ки, так и с помощью RemouteThread


 
Kostafey ©   (2007-05-30 21:29) [7]

Не надо делать выгрузку Dll.
Вот не надо и все.
У меня была такая ситуация, когда приходилось работать не имея возможности вностить
изменения в код основного приложения.

Когда код dll немного разросся, то при многократной загрузке/выгрузке
dll возникали ошибки. В самой же dll ничего криминального не было -
все очень простенько.

Самый надежный способ (imho) - делать загрузку dll при первом обращении к
ней и... и все.
Выгрузится она вместе с приложением.


 
Riply ©   (2007-05-30 21:35) [8]

> [7] Kostafey ©   (30.05.07 21:29)
>Не надо делать выгрузку Dll.
>Вот не надо и все.
>Когда код dll немного разросся, то при многократной загрузке/выгрузке
>dll возникали ошибки. В самой же dll ничего криминального не было -
>все очень простенько.
Очень сильно сомневаюсь, что ошибки возникали из-за
многократной загрузке\выгрузке(если это делается корректно).
Их в другом месте искать надо.


 
Kostafey ©   (2007-05-30 21:44) [9]

> Очень сильно сомневаюсь, что ошибки возникали из-за
> многократной загрузке\выгрузке(если это делается корректно)
> .

Я тоже в этом сомневаюсь ;))))

Однако, даже если брать стандартные примеры по этому вопросу из букварей,
то ошибки тоже возникают, просто нужно раз 50 произвести загрузку/выгрузку.
Нет, серьезно.
При увеличении объема кода библиотеки количество операций загрузки/выгрузки
до появления ошибки уменьшается.


> Их в другом месте искать надо.

Надо, но возможно они есть, возможно нет...
Пока копать в этом направлении нет ни времени ни смысла.
А с однократной загрузкой увсе работет надежно как дубина :)))


 
Loginov Dmitry ©   (2007-05-30 22:01) [10]

> А с однократной загрузкой увсе работет надежно как дубина


Дак и не нужна она многократная выгрузка, если планируется не раз обращаться к функциям Dll-ки.


 
KJ   (2007-05-30 23:05) [11]

нет требуется заменить длл , без убития процесса (ЗАДАЧ),
он туп и поэтому обращается все вольшь несколько раз к ней и позже
не обращается - подсмотрел монитором

впрочем после перезапуска проги (через пару часов он загрузит уже новую длл filter32.dll)


 
Loginov Dmitry ©   (2007-05-30 23:20) [12]

> он туп


кто туп?


> подсмотрел монитором


смотрят обычно в/на монитор, а не наоборот ))

В общем, расскажи что ты хочешь, только по-русски.


 
KJ   (2007-05-31 00:14) [13]

по русски

при запуске программа N динамически грузит длл D
N- моя исходников нет (сама она FreeLibrary неделает), D- пишу сам

работает и через некоторое время мне надо заменить D
на другую не прибивая N так как он занят вычислениями
и неиспользует D что видно трассировкой между D и N

как нибудь выгружаем D (у N остается просто недействительный
хэндл и другие указатели)

заменяем длл D - когда прогу перезапустят (может через сутки)
он будет работать уже с новой длл


 
KJ   (2007-06-09 20:54) [14]

решил пропатчиванием памяти и прога отпускает длл
завернул в одну функцию



Страницы: 1 вся ветка

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
9-1154912330
Пользователь
2006-08-07 04:58
2007.07.01
Как обновлять GLScene?


15-1180976019
oldman
2007-06-04 20:53
2007.07.01
Объявление. В связи с моей защитой.


2-1180678545
Wolferio
2007-06-01 10:15
2007.07.01
Запуск программы


3-1175693236
Megabyte
2007-04-04 17:27
2007.07.01
внутренний массив или последовательный перебор в ХП


15-1180550925
Kostafey
2007-05-30 22:48
2007.07.01
Кому-нибудь доводилоь писать реферат на тему будущей канд. дис-ии