Вниз
Скачать: CL | DM;

Можно ли выгрузить из памяти dll и как?   Найти похожие ветки 

← →
Alexander ©   (2002-11-10 11:13) [0]

Загружаю её в память не я и мне достоверно известно, что она уже не используется. Она, конечно и сама через некоторое время выгрузиться, но мне нужно ускорить этот процесс (uninstall программы)


← →
Наезжалкин   (2002-11-10 11:54) [1]

Попробуйте FreeLibrary(). Сильная вещь!


← →
Reindeer Moss Eater   (2002-11-10 12:23) [2]

Не поможет, хоть и сильная вешь.


← →
Relict   (2002-11-10 13:57) [3]

а зачем её выгружать если она(dll) уже не используется
зразу смело удаляй
операционнка сама ее выгрузит как поступит команда на удаление
в чем проблемма то?


← →
Song ©   (2002-11-10 14:16) [4]

GetModuleHandle()+FreeLibrary()
Стыдно должно быть, товарищ, такие вопросы задавать! ;-)


← →
Aleksey Pavlov ©   (2002-11-10 14:39) [5]

Забавно, господа, получается у вас.
Постановка задачи:
"Загружаю её в память не я и мне достоверно известно, что она уже не используется."
Можно сделать вывод, что счётчик ссылок обнулён и DLL находится в памяти только из-за "привычки" Windows ненадолго сохранять в памяти последнии загруженные физические образы DLL уже после обнуления ссылок на них.
Таким образом, попытка GetModuleHandle()+FreeLibrary() будет неудачной.
Насколько мне известно, документированных способов очистки физ. памяти из-под "обнулённой" DLL "вручную" не существует.
Система сама освободит память, когда потребуется.


← →
Song ©   (2002-11-10 15:07) [6]

2Aleksey Pavlov © (10.11.02 14:39)
Можно сделать цикл постоянного исполнения FreeLibrary пока dll не будет вытащена.


← →
Reindeer Moss Eater   (2002-11-10 15:24) [7]

Это лишь отменит отображение DLL в адресное пространство процесса, занятого циклическим выполнением FreeLibrary.

Если библиотека была загружена еще кем-то, то ничего реально не выгрузится.


← →
kig ©   (2002-11-10 19:31) [8]

Если используется XP, то можно попробывать

CoFreeUnusedLibrariesEx
Unloads any DLLs that are no longer in use and whose unload delay has expired.

void CoFreeUnusedLibrariesEx(

DWORD dwUnloadDelay, //The unload delay for DLLs no longer in use

DWORD dwReserved //Reserved for future use

);

Parameters
dwUnloadDelay
[in] The delay in milliseconds between the time that the DLL has stated it can be unloaded until it becomes a candidate to unload. Setting dwUnloadDelay=INFINITE uses the system default delay (10 minutes). Setting dwUnloadDelay=0 forces the unloading of any DLLs without any delay.

dwReserved

[in] Reserved for future use; must be zero.


← →
Alex44   (2002-11-10 19:33) [9]

Windows cachiruet dll"s, i, v obshem, pravil"no delaet. IMHO, esli DLL ne zanyata ni kem drugim, to ona vygruzitsya, esli potrebovat" mnogo pamyati.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
14-74920
herosofnn
2002-11-30 12:56
2002.12.23
почтовый клиент!!!


1-74784
Sergy
2002-12-11 10:27
2002.12.23
Как правильно определить, открыто ли уже такая форма?


3-74569
Oleg_Em
2002-12-04 13:41
2002.12.23
вызов функции в запросе ....


4-75046
dokkk
2002-11-09 23:07
2002.12.23
Как по ID процесса определить FileName


1-74670
Tundra
2002-12-12 13:02
2002.12.23
Как сделать прозрачный прямоугольник?




   Наверх