Как выгружать DLL насильно?
А для чего нужно?
И сейчас у меня, похоже, та проблема, что dll не загружается заново в память (после соответствующей компиляции и сборки видимо винде показалось достаточным туда ее один раз загрузить.
Но все равно интересно (насчет утилиты )
если программа закончила выполнение (в среде разработки или отдельно от нее можно ли перезаписать на диске dll, которую она использовала? У меня система этого делать не хочет, говорит:
"Запрошенную операцию нельзя выполнить для файла с открытой пользователем сопоставленной секцией" (это Far такое выдает). Что бы это значило?
такая утилита.
Кроме того, если твоя программа компонуется совсем динамически (LoadLibrary то можно сделать UnloadLibrary в конце.
если процессом - то его наверное надо килять ручками перед окончанием работы программы
Есть freelibrary в конце, это не то же самое?
Видимо, получается, что я ее загружаю в том же треде, что и основной тред программы, так?
я дельфи не знаю толком
А есть утилита не под XP? Свою XP я уже снес, сейчас Win2k?..
Это все тривиально, но бывает и такое ;-)
Но другая проблема осталась: не могу перезаписать на диск dll, пока не закрою среду разработки (Delphi 6) - это даже при том, что программа уже завершила выполнение. Far выдает сообщение, о котором я говорил выше (я это сообщение первый раз в жизни вижу, честно говоря... ) Закрываю среду - все ок. Чудеса!
Да чудесами программеры не обделены! Помнится у меня как-то некоторые одинаковые файлы-исходники были заняты как в екзешнике, так и в dll, которой exe пользовался. Файлы поменял, exe перебилдил, а dll - забыл. Отлаживаю, типа, летит из dll exception, смотрю - ИЗ КОММЕНТАРИЕВ летит! Я просто офигел от такого нахальства....
Красиво
С VB тоже самое. Visual среды не рулят, короче.
Оставить комментарий
Djet
субж? Посоветуйте, плиз!Надо иметь возможность выгружать старые версии dll из памяти для того, чтобы загружать туда новые версии этой же dll (специфика такая желательно без перезагрузки компа (так каждый сможет ).
Может есть утилитка какая?