![]() |
|
![]() ![]() ![]() |
|
shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
хочу научиться выгружать свою динамическую DLLку из программы, точнее чтобы библиотека сама выгружалась. я пробовал так:
но сия строчка полностью завершает выполнение всей программы что абсолютно неприемлемо пробовал еще FreeLibraryAndExitThread - эффект аналогичен ![]() можно конечно не париться и не выгружать либу из файла... темболее что сам EXEфайл ее к себе не подключает (в идеале даже не подозревает о существовании библиотеки) но все же хочется ее убрать(читай выгрузить) если конкретный исполняемый файл нам не интересен Это сообщение отредактировал(а) shara - 13.1.2009, 23:34 -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 2 Всего: 146 |
попробуй вместо нуль поставить хендл библиотеки , ибо нуль это самого приложения и библа и приложение выполняется в одном и томже триде! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
собсно я то думал что вызывая GetModuleHandle с параметром NULL из тела самой библиотеки мне его и дадут... а как тогда по другому сей хендл можно узнать? повторюсь, сам ЕХЕшник о существовании библиотеки не подозревает - тоесть он хендл не вернет... что-то мне подсказывает что можно хендл узнать функцией аналогичной GetProcAddress но поиск в МСДНе ничего не принес -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: нет Всего: 158 |
GetModuleHandle("имя_твоей_длл")
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Или запомнить его на входе в DllMain - там тебе его дают.
-------------------- ... |
|||
|
||||
shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
всем спасибо
![]() но я нашел более простой способ: если ДЛЛка возвращает при обработке сообщения DLL_PROCESS_ATTACH в DllMain значение FALSE то она автоматически вызывается еще раз с сообщением DLL_PROCESS_DETACH и автоматически выгружается из процесса (как раз то что мне и нужно было). Даже вызывать никаких функций не нужно - красота ![]() ![]() цитата из MSDN
еще раз спасибо всем за помощь Это сообщение отредактировал(а) shara - 14.1.2009, 21:11 -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |