Найти в Дзене

Зачем нужны библиотеки DLL

Любой, кто когда-либо пользовался Windows, особенно ее более ранними версиями, вероятно, сталкивался со странными ошибками DLL, появляющимися совершенно внезапно. Хотя файлы DLL кажутся действительно важными, учитывая как часто Windows жалуется на их отсутствие или невозможность работы, не совсем понятно что они собой представляют. Аббревиатура DLL расшифровывается как Dynamic Link Library (динамически подключаемая библиотека). Причина, по которой их называют библиотеками, заключается в том, что библиотеки DLL содержат общий программный код, к которому могут обращаться и использовать сразу несколько программ. Это можно сравнить с тем, как в настоящих библиотеках есть общие для всех читателей книги. С другой стороны, библиотеки DLL несут в себе важную функцию, которой нет в книгах: несколько программ могут одновременно использовать одну и ту же библиотеку DLL. Как только DLL загружается в определенное место оперативной памяти, любая программа, которой нужен код внутри нее, может запрос

Любой, кто когда-либо пользовался Windows, особенно ее более ранними версиями, вероятно, сталкивался со странными ошибками DLL, появляющимися совершенно внезапно. Хотя файлы DLL кажутся действительно важными, учитывая как часто Windows жалуется на их отсутствие или невозможность работы, не совсем понятно что они собой представляют.

Назначение DLL в Windows

Аббревиатура DLL расшифровывается как Dynamic Link Library (динамически подключаемая библиотека). Причина, по которой их называют библиотеками, заключается в том, что библиотеки DLL содержат общий программный код, к которому могут обращаться и использовать сразу несколько программ. Это можно сравнить с тем, как в настоящих библиотеках есть общие для всех читателей книги. С другой стороны, библиотеки DLL несут в себе важную функцию, которой нет в книгах: несколько программ могут одновременно использовать одну и ту же библиотеку DLL. Как только DLL загружается в определенное место оперативной памяти, любая программа, которой нужен код внутри нее, может запросить доступ к этому пространству памяти, без необходимости повторной загрузки DLL.

Хорошим примером такого принципа взаимодействия является файл DLL comdlg32.dll, который содержит программный код для вызова всплывающего диалогового окна Windows.

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

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

Долгое время Microsoft требовала, чтобы сторонние разработчики программного обеспечения проверяли устанавливаемые DLL на соответствие принятым стандартам, в особенности если они перезаписывают существующие библиотеки. Вероятно нет нужды говорить, что поскольку разработчики, как правило, больше заботятся о том, чтобы их собственное программное обеспечение работало как надо, этого зачастую просто не происходило, и установщики продолжали безнаказанно устанавливать проблемные библиотеки DLL.

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

А зачем необходим аутсорсинг можете узнать у нас на сайте: https://afforto.ru/