Что такое DLL файлы? Как ни странно — библиотека

Компьютерные программы становятся все умнее и все больше похожими на людей. Неудивительно, что в какой-то момент им тоже понадобились библиотеки. Тогда и появилась первая DLL. Dynamic Link Library - динамически подключаемая библиотека.

Что хранится в DLL?

Программа - это способ обработки информации. При этом часто приходится совершать одни и те же действия. Такие действия в программировании называются процедурами и функциями. Предположим, программе надо 100 раз перемножить одно число на другое. Она будет обращаться к соответствующей функции внутри нее до тех пор, пока не выполнит все действия.

Но программ, которым требуется операция умножения, множество. И до появления DLL каждая из них содержала в себе одну и ту же функцию. Физически она представляет собой несколько строчек в программе. Каждый символ — один байт. Он загружается в память компьютера. А память не бесконечна.

что такое файл msvcp120 dll

Программисты быстро сообразили, что можно все такие функции поместить в одну программу. А кому надо, пусть обращаются к ней. Так появилась DLL. Это библиотека, в которой вместо книг хранятся общие функции.

Что такое файлы DLL?

Компьютер знает только один способ хранить информацию. Он записывает ее в виде файлов. DLL не избежала общей участи. Она хранится в виде файлов window.dll.

Это значит, что в операционной системе Windows файлы библиотек состоят из названия и расширения, разделенных точкой. Например: msvcp120.dll. Название файла может быть любым, а расширение всегда dll.

Хранятся они в системной папке Windows, "system32". Поэтому любая программа "знает", куда ей обращаться, чтобы получить нужную функцию. Если библиотека нужна только одному исполняемому файлу, она может находиться в другом месте.

Как это работает?

В состав исполняемого файла включена так называемая таблица импорта. Она содержит сведения о том, какие библиотеки и функции понадобятся для работы.

Когда запускается программа, система считывает из таблицы импорта эту информацию. Затем она загружает в память нужные dll. Необходимые функции копируются в адресное пространство исполняемого файла. После этого библиотека выгружается из памяти и освобождает ее для других задач.

Этих сведений уже достаточно для понимания, что такое файлы DLL. В реальности все гораздо сложнее.

файл window dll

Динамически подключаемый ад

Все было бы хорошо, если бы не стремление к совершенству. Программы становятся короче, память используется лучше, скорость растет на глазах. Но хочется еще короче, лучше, быстрее.

Поэтому появляются новые версии старых библиотек. Тут и возникает то, что обозначается термином "DLL hell", "Dll ад" по-нашему. Вполне себе официальный термин. Предугадать когда преисподняя разверзнет свои врата невозможно.

ошибки файлов dll

Чаще всего это происходит так: только вчера все работало как часы, а сегодня то одна, то другая программа выкидывает сообщение о том, что некая библиотека не годится, надо ее переустановить. Если знать, что такое файл DLL, на который ссылается сообщение, можно его поискать и... Он найдется. Там, где и должен быть.

Тут самое время вспомнить, что недавно был скачан какой-нибудь софт. Установился нормально и работает без нареканий. Чаще всего причина непонятных сбоев кроется именно в этом. Объяснение простое: программа установила новую версию dll. Она несовместима со старой.

Выход есть - это "вход изнутри"

Можно взять и установить старую версию. Тогда перестанет работать вчерашняя инсталляция. Чем пожертвовать? Ничем.

Можно использовать обе версии. Одну положить в "Windows\system32\", другую вместе с программой. Когда система начинает искать файл, она сначала ищет его в папке с исполняемым файлом. Не найдет, будет искать в системной. Главное - не перепутать, что где должно лежать. Этот способ называется "перенаправление".

Выход из ада найден? Да. Но остались мелкие неприятности. Бывают и другие ошибки файла dll. Он может просто отсутствовать. Кто виноват - вопрос второй. Первый: что делать?

Найти и установить

Что такое файл msvcp120 dll, знает не каждый. Но кому "повезло" увидит:

dll файлы что такое

Знающий, что такое файл DLL сообразит, что это библиотека. Где она лежит - известно. Почему для примера выбран именно этот файл? Потому что встречается он чаще других. Это важный системный файл, который используют очень многие программы. Существует 2 способа исправить ошибку:

  • переустановить программу, которой нужен этот файл;
  • установить библиотеку вручную.

При переустановке программы она сама скачает и установит dll.

Установка вручную предполагает несколько шагов:

  • скачать файл из интернета;
  • положить его в нужную папку;
  • зарегистрировать библиотеку;
  • перезагрузить компьютер.

Так же надо поступать с любым другим dll файлом.

Вкусное на третье

Ужасный кошмар DLL hell мотивировал программистов Microsoft на создание платформы NET Framework. Они верят, что Dll hell был последним кругом рукотворного ада и новая платформа приведет прямиком в рай. Тоже рукотворный.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.