Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
ВнизКак убить 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 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c