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

Как убить DLL-ку, находящуюся в памяти?   Найти похожие ветки 

 
Chak ©   (2002-01-19 15:48) [0]

Во время разработки DLL-ки, после кимпиляции приложения в результате(какой либо, неважно какой) ошибки приходятся подправлять код и соответственно повторно компилировать его, часто бывает так что загруженная в память DLL-ка там и остается после вихода из приложения, а при повторной компиляции грузится не та, код которой подправлен, а та что висит в памяти.
Вопрос: как избавится от той что висит в памяти, ато перезагрузка самой Delphi уже порядком надоела, да и времени уходит много!?


 
paul_shmakov ©   (2002-01-20 02:17) [1]

??? как Вам это удается?
1. когда выгружается приложение также выгружаются и все загруженные им dll.
2. если Вам все таки удалось свою dll оставить где-то в памяти, то у Вас не должна пройти компиляция проекта этой dll, т.к. ее файл недоступен для записи


 
Chak ©   (2002-01-20 11:09) [2]

Незнаю даже, но факт всетаки остается фактом, она висит в памяти!
Иногда даже рестарт Delphi не помагает, приходится переружать комп! Как же быть в таком случае, что я не так делаю?


 
StelZ ©   (2002-01-20 19:28) [3]

Если не шибаюсь, то все в порядке. Дело в том, что DLL-ки даже после завершения приложения остаются в памяти. Сделано это для удобства использования приложений. Например, запусти Word. Он будет довольно длительное время грузиться. Закрой его. Открой заново. Он запустится за считанные секунды. Это из-за того, что большенство его функций записаны в DLL-ках, которые остаются в памяти.
Возможно, та же ситуация и у тебя. Винда думает, что ты вызываешь ту же самую DDL-ю и вызывает не заново скомпилированную, а ту, которая было в памяти.

имхо...


 
Chak ©   (2002-01-20 23:06) [4]

Как же заставить грузиться ту что нужно мне?


 
Aleksey Pavlov   (2002-01-21 14:23) [5]

При работе с dll надо учитывать тот факт, что, когда вы используете ф-ию FreeLibrary вы не выгружаете, а освобождаете dll !
Ваша библиотека может оставаться в памяти даже после того, как все приложения перестанут её использовать.
Это сделано для оптимизации работы с dll. Система специально не освобождает память из под dll (не всегда !) на случай, если данная библиотека понадобится какому-то процессу.
Никаких документированных способов насильно выгрузить DLL из памяти нет.
А те, что использует сама система, работают с ядром на низком уровне.

>> Chak:
В качестве совета, в сложившейся ситуации, можно порекомендовать изменение имени библиотеки с последующей перекомпиляцией как самой библиотеки так и файла-проекта.



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

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



Память: 0.46 MB
Время: 0.015 c
1-8839
Tym
2002-01-21 00:47
2002.02.04
обращение к функциям Mathcad из Delphi!


3-8799
otari
2002-01-06 23:15
2002.02.04
никто не знает INTERBASE?


14-8976
Nikolay
2001-12-12 20:27
2002.02.04
Откачали........


1-8891
Unholy()
2002-01-16 00:39
2002.02.04
Помогите найти следующие компоненты...


1-8835
tavwizard
2002-01-19 16:49
2002.02.04
add-in для Delphi




   Наверх