Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > самовыгрузка динамической библиотеки |
Автор: shara 13.1.2009, 23:31 | ||
хочу научиться выгружать свою динамическую DLLку из программы, точнее чтобы библиотека сама выгружалась. я пробовал так:
но сия строчка полностью завершает выполнение всей программы что абсолютно неприемлемо пробовал еще FreeLibraryAndExitThread - эффект аналогичен ![]() можно конечно не париться и не выгружать либу из файла... темболее что сам EXEфайл ее к себе не подключает (в идеале даже не подозревает о существовании библиотеки) но все же хочется ее убрать(читай выгрузить) если конкретный исполняемый файл нам не интересен |
Автор: Romikgy 13.1.2009, 23:52 |
попробуй вместо нуль поставить хендл библиотеки , ибо нуль это самого приложения и библа и приложение выполняется в одном и томже триде! |
Автор: dumb 14.1.2009, 17:18 |
GetModuleHandle("имя_твоей_длл") |
Автор: Earnest 14.1.2009, 17:41 |
Или запомнить его на входе в DllMain - там тебе его дают. |
Автор: shara 14.1.2009, 21:03 | ||
всем спасибо ![]() но я нашел более простой способ: если ДЛЛка возвращает при обработке сообщения DLL_PROCESS_ATTACH в DllMain значение FALSE то она автоматически вызывается еще раз с сообщением DLL_PROCESS_DETACH и автоматически выгружается из процесса (как раз то что мне и нужно было). Даже вызывать никаких функций не нужно - красота ![]() ![]() цитата из MSDN
еще раз спасибо всем за помощь |