Реферат Курсовая Конспект
Решение №2. - раздел Религия, Хранения формы в динамических библиотеках И Вот Тут Было Найдено Вполне Солидное Решение: Не Стыковать Модули С Основно...
|
И вот тут было найдено вполне солидное решение: не стыковать модули с основной программой, а сохранять их в отдельный файл и пусть любая программа загружает его по мере надобности. Сказали, сделали. Так появились библиотеки DLL, что означает Dynamic Link Library (DLL). Это библиотеки, которые подключаются к программе динамически. В них можно хранить исполняемый код в виде процедур или функций, ресурсы программы, графику или даже видео ролики.
Вот так. Теперь программа не увеличивалась на размер модуля при компиляции, а просто загружала код из DLL файла в память и использовала его. Если одна программа уже загрузила DLL, то следующая не будет уже делать этого. Она воспользуется уже загруженной версией. Таким образом, экономится не только диск, но и оперативная память, которой, как и денег, много не бывает.
Сейчас уже DLL -это не просто динамически подгружаемая библиотека. Ты наверно уже не раз слышал про компоненты ActiveX. Они так же могут быть выполнены в виде ocx или dll файлов. Да оно и понятно, ActiveX используются сейчас достаточно много и занимают места в несколько раз больше чем самая большая DLL библиотека. Так что единственный и нормальный выход экономить место винта и памяти это засунуть ActiveX в динамически подгружаемую библиотеку. Хотя это уже не та DLL, но всё же работает по тем же принципам.
У динамических библиотек есть единственный недостаток -на ее загрузку тратится лишнее время. Если бы код, находящийся в DLL был бы скомпонован с программой, то он грузился бы намного быстрее. Зато если библиотека уже загружена другой программой, то она появляется намного быстрей. Не веришь? Отложи сейчас книгу и возьми в руки секундомер. Теперь запусти Word или Excel. Засеки сколько времени будет проходить загрузка. Теперь закрой эту программу и запусти ее снова. Она появится на экране практически моментально. Это потому что после выхода из программы, DLL файл не выгружается из памяти. Это происходит только тогда, когда операционной системе не хватает памяти и ни одна из программ не использует в данный момент эту библиотеку.
А теперь представь себе, что такое Word!!! Представил? Это и текстовый редактор, и проверка орфографии, и построитель диаграмм, редактор формул и куча еще всякой всячины. Представь себе, что было бы, если все это засунуть в один файл? Нет, ты это не можешь представить. Это был бы один запускной файл размером в 30-50 мегабайт.
А теперь вспомни, что я тебе сегодня говорил: перед запуском, программа загружается в память. Представляешь теперь, сколько бы грузился Word? А сколько памяти он съёл бы? А тебе ведь и половина его возможностей абсолютно не нужна. И зачем же их грузить в память?
А при использовании динамических библиотек в запускном файле находится только самое основное, а дополнительные возможности подгружаются по мере надобности из DLL-файлов. Например, когда стартует Word, то загружается только модуль текстового редактора. Когда ты выбрал редактор формул или объект WordArt, то Word подгружает из dll файла код выбранного объекта и выполняет его. Таким образом, суммарная скорость загрузки уменьшается, причем очень даже значительно.
Ещё одно большое преимущество динамических библиотек – при их использовании код программы разбивается на несколько файлов (зависит от количества DLL файлов). Допустим, что в одной из функций находящейся в DLL оказался код с ошибкой. В этом случае не надо обновлять всю программу, а достаточно передать всем пользователям только этот DLL файл, и программа получит необходимые обновления.
У динамических библиотек сплошные преимущества и только два недостатка:
1. 1. Код из DLL файла выполняется в том же участке памяти, что и основная программа. Поэтому программа и DLL используют один и тот же стек данных, что иногда накладывает свои ограничения. Например, DLL не может хранить глобальных переменных. Воспринимай динамические библиотеки просто как набор процедур и функций, которые могут хранить только локальные переменные.
2. 2. Изначально динамические библиотеки были процедурными. Хотя сейчас умельцы умудряются использовать их для хранения объектов, но это очень неудобно. Но, несмотря на это, ActiveX (изначально объектные) могут храниться в файлах с расширением dll.
Но всё же динамические библиотеки получили широкое распространение и программисты используют их на каждом углу, когда надо и когда не надо. Никогда нельзя быть уверенным, что какой-то код уже больше никогда не понадобится. Всегда нужно рассчитывать на будущее.
Я надеюсь, что я тебя убедил в великих возможностях динамических библиотек. Это действительно так. Конечно же, ActiveX более продвинуты, но они требуют неудобной регистрации в системе (в реестре) и намного сложнее в программировании, а библиотеки пишутся достаточно просто и их достаточно только скопировать на другой компьютер, чтобы программа смогла её найти.
– Конец работы –
Эта тема принадлежит разделу:
Глава Динамически компонуемые библиотеки...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Решение №2.
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов