Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
1-1177948932
Чародей
2007-04-30 20:02
2007.07.01
Как распаковать zip


2-1181193755
Solbon
2007-06-07 09:22
2007.07.01
завершение программы


2-1181276047
KJ
2007-06-08 08:14
2007.07.01
Выделить строку ListView целиком


2-1181130039
dr_craigan
2007-06-06 15:40
2007.07.01
работа с файлами


11-1164218894
Psychedelic
2006-11-22 21:08
2007.07.01
Когда уже пофиксят этот баг с Group box om?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский