Форум: "Начинающим";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];
Внизвыгрузка Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c