- Что такое DLL файлы и для чего они нужны?
- Зачем нужны DLL компоненты
- Работоспособность элементов
- Файл формата DLL: чем открыть, описание, особенности
- Файлы с расширением DLL – что это и для чего нужны
- Когда и как появились
- При помощи каких программ открываются файлы с расширением .dll
- В Windows 10
- В Windows 7
- В онлайн-сервисах
- Как открыть DLL, используя Visual Studio
- Особенности работы с DLL файлами и возможные проблемы
- В качестве итога
- Что такое файлы DLL и почему они важны
- Исправление ошибок
- Подробнее о библиотеках DLL
- Файлы библиотеки Microsoft Windows — Microsoft Windows library files
- Содержание
- Внутренние компоненты
- HAL.DLL
- NTDLL.DLL
- Win32 API
- KERNEL32.DLL
- GDI32.DLL
- USER32.DLL
- COMCTL32.DLL
- COMDLG32.DLL
- WS2_32.DLL
- ADVAPI32.DLL
- NETAPI32.DLL
- OLE32.DLL
- другие API
- SHSCRAP.DLL
- WINMM.DLL
- IMM32.DLL
- библиотеки времени выполнения
- MSVCRT.DLL, MSVCP * .DLL и CRTDLL.DLL
Что такое DLL файлы и для чего они нужны?
Что такое DLL файлы, и для чего они нужны? Аббревиатура DLL – обозначает «Динамически Подключаемую Библиотеку». Она установлена, во всех операционных системах Windows, и практически каждая программа или игра на компьютере пользуется данной библиотекой. В ней содержится информация о конфигурации системы, совместимости устройств, наборе команд для правильной работы и многое другое. Некоторые файлы для игр имеют в своих папках уже готовые библиотеки, остальные пользуются системными.
Зачем нужны DLL компоненты
Если вкратце: что такое DLL файлы? – это компоненты библиотеки, а нужна она для запуска программ, приложений и игр. Компьютер включился, и система работает исправно. Вы еще ничего не запускали и не открывали, а уже десятки DLL файлов используются. Простые часы, информация о конфигурации системы, порядок запуска программ, оформление и многое другое используют библиотеку. Для того чтобы в текстовом документе начали появляться символы, соответствующие вашему вводу, нужна библиотека. По умолчанию система не знает, что означает нажатая вами клавиша,─ в этом его помогают компоненты DLL. Аналогичная ситуация со всеми подключаемыми устройствами: принтером, мышью, клавиатурой, флеш-картой. Именно библиотека DLL файлов «рассказывает» им, как работать с параметрами вашей системы.
Работоспособность элементов
Важно обновлять периодически систему и библиотеку, неактуальные файлы приведут к отказу работы программы. К примеру, вы установили игры пятилетней и большей давности, они у вас работают нормально. Далее вы поставили новую часть игры, которой не более года. Она может у вас не запуститься. Система выдаст следующее оповещение: ошибка DLL, отсутствует файл. Оно означает, что файлы нерабочие или вовсе его нет на компьютер. Связано это с тем, что программы или игры, которые пользуются библиотекой, могут вносить изменения. К примеру, вы установили игру, но параметры разрядности системы и версию ОС указали неверно.
Текущие файлы будут перезаписаны, и программа работать перестанет. Раз отсутствует DLL, значит, его нужно скачать и поместить в систему вручную. Но в большинстве случаев, новые игры требуют новых файлов, которых вообще не было в старых сборках системы, и решение одно — установить или обновить весь пакет.
У нас на сайте, Вы сможете скачать как отдельный DLL, так и весь пакет, в котором будут все файлы обновленные. Найти отсутствующий файл вы можете либо через поиск, либо по первой букве в верхнем меню. Как установить DLL файл и зарегистрировать прочтите в другой статье, где мы описали этот процесс максимально подробно.
Файл формата DLL: чем открыть, описание, особенности
Современные программы состоят из нескольких модулей, которые включают в себя массивы данных, классы.
Современные программы состоят из нескольких модулей, которые включают в себя массивы данных, классы, сервисы, требуемые библиотеки. Такой подход разрешает при переписывании ПО не редактировать полностью код, а изменять только необходимые функции, которые заключены в составных частях. Так как открыть DLL файл стандартными средствами Windows невозможно, приходится использовать другие методы.
Файлы с расширением DLL – что это и для чего нужны
Файлы DLL – это динамически подключаемые библиотеки. Установленная в операционную систему программа может не иметь в своем составе всех нужных для работы данных, а использовать те, которые уже присутствуют в ОС. За счет этого также достигается экономия памяти – работающие программы используют одни и те же DLL.
Если же программа (или библиотека) будет повреждена, то это не скажется на работоспособности остального ПО.
Когда и как появились
Библиотеки DLL появились одновременно с ОС Windows. Разработчики предполагали, что это облегчит программирование приложений и поможет упорядочить использование общих ресурсов в течение сеанса работы.
Но со временем выяснилось, что в ряде случаев возникает тупиковая ситуация, которая получила название «DLL hell». Такое случалось, когда два или более приложений требуют доступа к разным (и не совместимым друг с другом) библиотекам. В результате Windows начинала работать нестабильно.
Только в последних версиях ОС удалось создать механизм, предотвращающий возникновения сбоев – технологию Side-by-side assembly, который испытали в XP, но окончательно он стал применяться в Windows Vista.
При помощи каких программ открываются файлы с расширением .dll
Программный код ОС Windows – проприетарный. Это значит, что разработчики не предусмотрели штатных средств, применяя которые, пользователь сможет менять системный код. Для открытия DLL придется использовать специальные программные пакеты. А подключать имеющиеся DLL к разрабатываемой программе можно с применением ПО Microsoft.
В Windows 10
Пользователи, работающие в десятой версии Windows, не всегда знают, чем открыть DLL. Для подключения библиотеки к проекту понадобится либо Visual Studio, либо VisualFoxPro. Эти программные комплексы доступны для скачивания на официальном портале компании Microsoft. Для редактирования допускается использовать ResourceHacker – утилиту для ознакомления и редактирования различных типов файлов.
Чтобы открыть динамически подключаемую библиотеку, следует нажать в главном меню:
- Пункт «Файл».
- «Открыть».
- Выбрать требуемую библиотеку, воспользовавшись проводником.
- После завершения изменений закрыть файл, сохранив изменения.
Из чего состоит рабочая область программы ResHacker:
- верхняя главная панель – для запуска функциональных команд: открыть, скомпилировать, сохранить;
- левое окно – содержит список объектов, которые входят в состав библиотеки;
- центральная часть – текст программного кода.
В Windows 7
Проблема – чем открыть DLL для редактирования в операционной системе Windows 7 решается так же как и для 10 версии. Еще применяется утилита Resource Tuner – редактор ресурсов. Она дает возможность менять код в DLL на свое усмотрение и сохранять библиотеки.
В онлайн-сервисах
Это понадобится, если речь идет о страницах сайта. В DLL содержатся скрипты, которые отвечают за корректную работу сервера.
Открыть библиотеки можно, используя браузеры:
Как открыть DLL, используя Visual Studio
Программная среда Visual Studio дает возможность создавать, подключать DLL к текущему проекту и редактировать его. Для этого используется синтаксис языка программирования.
Особенности работы с DLL файлами и возможные проблемы
Некоторые DLL не удастся не только изменить, но даже открыть. Это происходит с защищенными библиотеками и проблема не решается без специальных программ для взлома.
Пользователи также сталкиваются с отсутствием библиотек, необходимых для работы некоторых программ. ОС при этом выдает сообщение о том, что «файл не найден». Для устранения неисправности требуется отыскать недостающие DLL с помощью поисковых систем и скачать. Затем – поместить в требуемую папку.
В редких случаях библиотеки DLL придется зарегистрировать в ОС:
- В Windows 7 (и более поздних версиях) войти в каталог, содержащий требуемый файл.
- Нажать «Shift» + правую клавишу мышки.
- В появившемся меню выбрать строчку: «Открыть окно команд».
- Набрать: regsvr32 dllxxxx.dll, где «dllxxxx.dll» – название регистрируемой библиотеки.
- Нажать «Enter».
В качестве итога
Работой с DLL занимаются программисты, но опытным пользователям также полезно будет знать основы работы с динамически подключаемыми библиотеками. Это может пригодиться для изменения или извлечения данных из файлов прикладных программ.
Что такое файлы DLL и почему они важны
Последнее обновление — 20 июня 2020 в 16:03
Файл DLL (сокращение от Dynamic Link Library или динамическая библиотека ссылок). Представляет собой тип файла с определенными инструкциями, которые могут вызывать другие программы для выполнения определенных действий. Несколько программ могут совместно использовать инструкции, запрограммированные в одном файле, а при необходимости делать это и одновременно.
Например, несколько разных программ могут вызывать один файл, для того, чтобы найти свободное место на жестком диске, найти файл в определенной директории или распечатать страницу.
В отличие от исполняемых программ, таких как с расширением EXE, DLL-файлы не могут быть запущены напрямую, а должны вызываться другим кодом, который уже запущен. Однако библиотеки DLL в том же формате, что и файлы EXE, и некоторые из них могут даже использовать расширение .EXE. Хотя большинство динамических библиотек и заканчиваются расширением файла .DLL, другие могут использовать .OCX, .CPL или .DRV.
Исправление ошибок
Из-за большого количества и частоты использования, DLL-файлы вызывают множество ошибок, возникающих при запуске, использовании и завершении работы OS Windows.
Решить проблему простой загрузкой отсутствующего или удаленного DLL-файла удается не всегда и не во всех случаях это лучший способ. Об этом подробнее читайте в статье: «Где скачать библиотеку dll и как правильно это сделать».
Если у вас возникла ошибка с DLL, то лучше всего найти информацию об устранении именно этой проблемы, а не общей, чтобы вы решили ее быстро и правильно.
Подробнее о библиотеках DLL
- Динамической библиотекой ссылок файл назвали потому, что данные из файла dll используются в программе только тогда, когда программа активно их запрашивает, вместо того, чтобы они всегда были доступны в памяти
- По умолчанию в Windows доступно множество DLL-файлов. Так же их могут устанавливать сторонние программы.
Если вы не понимаете, что делаете, то открывать, и тем более их изменять не рекомендуется. Это может вызвать проблемы с другими DLL и программами.
- Файлы DLL полезны, потому что они позволяют программе разделить ее различные компоненты на уникальные отдельные модули, которые затем могут быть добавлены или удалены для включения или исключения определенных функций. Когда программное обеспечение работает таким образом с DLL, программа может использовать меньше памяти, потому что ей не нужно загружать все сразу
- Библиотеки DLL позволяют производить обновление части программы без необходимости переустанавливать всю программу целиком. Чем больше программное обеспечение использует DLL, тем лучше, потому что все ее компоненты могут обновиться из единственного файла
- Элементы управления ActiveX, файлы панели управления и драйверы устройств — это некоторые из файлов, которые Windows использует в качестве динамических библиотек. Соответственно, эти файлы используют расширение файлов OCX, CPL и DRV
- Когда одна библиотека DLL использует инструкции из другой библиотеки, то эта первая библиотека теперь зависит от второй. Это облегчает функционирование DLL-библиотек, но может привести к дополнительным сбоям. Если ошибка возникнет во второй библиотеке, то это скорее всего повлияет и на первую, так как она связана с ней инструкциями
- Если DLL обновляется до более новой версии, перезаписывается более старой или удаляется с компьютера, программа, использующая этот DLL может совсем перестать работать или будет работать с ошибками и сбоями.
Не удаляйте файлы, о которых вы ничего не знаете.
Файлы библиотеки Microsoft Windows — Microsoft Windows library files
Операционная система Microsoft Windows поддерживает форму разделяемых библиотек , известных как «библиотеки с динамической компоновкой », которые представляют собой библиотеки кода, которые могут использоваться несколькими процессами, в то время как только одна копия загружается в память . В этой статье представлен обзор основных библиотек, которые включены в каждую современную установку Windows, поверх которых построено большинство приложений Windows.
Содержание
Внутренние компоненты
HAL.DLL — это файл библиотеки режима ядра, и его нельзя использовать любой программой пользовательского режима. NTDLL.DLL используется только некоторыми программами, но это зависимость большинства библиотек Win32, используемых программами.
HAL.DLL
Уровень аппаратной абстракции Windows (HAL) реализован в hal.dll . HAL реализует ряд функций, которые по-разному реализуются на разных аппаратных платформах, которые в данном контексте относятся в основном к чипсету . Другие компоненты в операционной системе могут затем вызывать эти функции одинаковым образом на всех платформах, независимо от фактической реализации.
Например, реакция на прерывание на машине с Advanced Programmable Interrupt Controller (APIC) совершенно иная, чем на машине без него. Для этой цели HAL предоставляет единственную функцию, которая работает со всеми видами прерываний от различных наборов микросхем, так что другие компоненты не должны беспокоиться о различиях.
HAL загружается в адресное пространство ядра и работает в режиме ядра, поэтому подпрограммы в HAL не могут быть вызваны приложениями напрямую, и никакие API пользовательского режима не соответствуют непосредственно подпрограммам HAL. Вместо этого HAL предоставляет услуги главным образом исполнительной системе и ядру Windows, а также драйверам устройств режима ядра. Хотя драйверы для большинства оборудования содержатся в других файлах, обычно с типом файла .sys , некоторые драйверы ядра скомпилированы в hal.dll .
драйверы устройств режима ядра для устройств на шинах, таких как PCI и PCI Express напрямую вызывают процедуры в HAL для доступа к портам ввода-вывода и регистрам их устройств. Драйверы используют процедуры HAL, потому что разные платформы могут требовать разных реализаций этих операций. HAL реализует операции надлежащим образом для каждой платформы, поэтому один и тот же исполняемый файл драйвера может использоваться на всех платформах, использующих одну и ту же архитектуру CPU , а исходный файл драйвера может переноситься на все архитектуры.
В системах x86 на установочном носителе есть несколько разных файлов HAL. Процедура установки Windows определяет, какие из них подходят для текущей платформы, и копирует их на жесткий диск, при необходимости переименовывая в hal.dll . Среди критериев для этого выбора: наличие ACPI -совместимой BIOS, наличие APIC , а также наличие и включение нескольких процессоров. (Несколько ядер многоядерного ЦП и даже «логические процессоры», реализованные гиперпоточным ЦП, все считаются «процессорами» для этой цели.) На На платформах x86-64 и Itanium существует только один возможный hal.dll для каждой архитектуры ЦП.
NTDLL.DLL
NTDLL.DLL экспортирует Windows Native API . Собственный API — это интерфейс, используемый компонентами пользовательского режима операционной системы, которые должны работать без поддержки со стороны Win32 или других подсистем API. Большая часть этого API реализована в NTDLL.DLL и на верхнем краю ntoskrnl.exe (и его вариантов), и большинство экспортируемых символов в этих библиотеках имеют префикс Nt , например NtDisplayString . Собственные API-интерфейсы также используются для реализации многих «API-интерфейсов ядра» или «базовых API-интерфейсов», экспортируемых KERNEL32.DLL. Подавляющее большинство приложений Windows не вызывают NTDLL.DLL напрямую.
Утверждается, что приложения, которые связаны непосредственно с этой библиотекой, используют собственную подсистему ; основная причина их существования — выполнение задач, которые должны выполняться в начале последовательности загрузки системы, прежде чем подсистема Win32 станет доступной. Очевидным, но важным примером является создание процесса подсистемы Win32, csrss.exe . До того, как существует процесс csrss.exe, никакие процессы Win32 не могут быть созданы, поэтому процесс, который его создает (Smss.exe, «диспетчер сеанса»), должен использовать собственную подсистему. Сам csrss.exe является таким приложением.
Несмотря на расширение файла «.exe», собственные приложения не могут выполняться пользователем (или любой программой в Win32 или других подсистемах). Примером может служить двоичный файл autochk.exe , который запускается chkdskво время инициализации системы в «синем экране». Другими яркими примерами являются службы, реализующие различные подсистемы, такие как csrss.exe .
В отличие от приложений Win32 , собственные приложения создают экземпляры внутри кода среды выполнения ядра (ntoskrnl.exe ), поэтому у них должна быть другая точка входа (NtProcessStartup , а не (w) (Win) MainCRTStartup , как в приложении Win32), получить их аргументы командной строки через указатель на структуру в памяти, управлять собственной памятью с помощью API кучи Rtl (API кучи Win32 являются просто оболочками — никакой реальной разницы в этом нет) и возвращать выполнение с вызовом NtTerminateProcess (в отличие от ExitProcess ). Общей библиотекой, связанной с собственными приложениями, является nt.lib, которая содержит код запуска для собственных приложений, аналогично тому, как среда выполнения C предоставляет код запуска для приложений Win32.
Хотя большая часть API не документирована, собственные приложения могут быть построенным с использованием Windows Driver Development Kit ; многие антивирусное программное обеспечение и другие поставщики служебных программ включают собственные приложения в свои продукты, обычно для выполнения некоторых задач во время загрузки, которые невозможно выполнить в пользовательском пространстве .
Win32 API
Каждая из библиотек в этом разделе реализует различные подмножества Win32 API.
KERNEL32.DLL
KERNEL32.DLL предоставляет приложениям доступ к большинству базовых API Win32, таких как управление памятью , ввод / вывод (I / O) операции, процесс и поток создание и функции синхронизации. Многие из них реализованы в KERNEL32.DLL путем вызова соответствующих функций в родном API , предоставляемом NTDLL.DLL.
GDI32.DLL
GDI32.DLL экспортирует Интерфейс графического устройства (GDI) функции, которые выполняют примитивные функции рисования для вывода на видеодисплеи и принтеры. Он используется, например, в версии Paint для XP. Приложения вызывают функции GDI напрямую для выполнения низкоуровневого рисования (линия, прямоугольник, эллипс), вывода текста, управления шрифтами и аналогичных функций.
Первоначально GDI поддерживал 16 и 256 цветов EGA / VGA видеокарты и монохромные принтеры. Функциональность расширилась с годами и теперь включает поддержку таких вещей, как шрифты TrueType , альфа-каналы и несколько мониторов .
USER32.DLL
USER32. DLL реализует компонент ПОЛЬЗОВАТЕЛЯ Windows, который создает стандартные элементы пользовательского интерфейса Windows, такие как рабочий стол, окна и меню, и управляет ими. Таким образом, это позволяет программам реализовывать графический пользовательский интерфейс (GUI) , который соответствует внешнему виду Windows. Программы вызывают функции из Windows USER для выполнения таких операций, как создание окон и управление ими, получение оконных сообщений (которые в основном представляют собой вводимые пользователем данные, такие как события мыши и клавиатуры, но также и уведомления от операционной системы), отображение текста в окне и отображение сообщений. коробки.
Многие функции в USER32.DLL вызывают функции GDI, экспортированные GDI32.DLL, чтобы выполнить фактическую визуализацию различных элементов пользовательского интерфейса. Некоторые типы программ также будут вызывать функции GDI напрямую для выполнения операций рисования нижнего уровня в окне, ранее созданном с помощью функций USER32.
COMCTL32.DLL
COMCTL32.DLL реализует широкий спектр стандартных элементов управления Windows, таких как диалоговые окна «Открыть файл», «Сохранить» и «Сохранить как», индикаторы выполнения и представления списков. Он вызывает функции из USER32.DLL и GDI32.DLL для создания и управления окнами для этих элементов пользовательского интерфейса, размещения в них различных графических элементов и сбора пользовательского ввода.
COMDLG32.DLL
COMDLG32.DLL , библиотека общих диалоговых окон, реализует широкий спектр диалоговых окон Windows, предназначенных для выполнения того, что Microsoft считает «общими прикладными задачами». Начиная с выпуска Windows Vista, Microsoft считает, что диалоговые окна «Открыть» и «Сохранить как», предоставляемые этой библиотекой, не рекомендуются и заменяются «API диалога общих элементов».
WS2_32.DLL
WS2_32.DLL реализует Winsock API, который предоставляет сетевые функции TCP / IP и обеспечивает частичную несовместимость с другими сетевыми API. wsock.dll и wsock32.dll — более старые версии для совместимости с Win3.11 и Win95.
ADVAPI32.DLL
ADVAPI32.DLL предоставляет вызовы безопасности и функции для управления реестром Windows .
NETAPI32.DLL
NETAPI32.DLL предоставляет функции для запросов и управление сетевыми интерфейсами.
OLE32.DLL
другие API
SHSCRAP.DLL
SHSCRAP.DLL является частью механизма связывания и внедрения объектов (OLE) . В нем реализована поддержка файлов обрезков оболочки , которые автоматически создаются при перетаскивании выбранного содержимого из OLE-совместимого приложения в окно проводника или рабочий стол, но вы также можете использовать Object Packager создать их. Затем их можно перетащить в другое приложение с поддержкой OLE.
Эта функция была удалена из Windows Vista (и, следовательно, более поздних версий), чтобы повысить безопасность и избавить операционную систему от обычно неиспользуемых функций. Файлы записки (.shs) использовались вирусами, потому что они могут содержать широкий спектр файлов (включая исполняемый код), а расширение файла не отображается, даже если параметр «Скрывать расширения файлов из известных типов файлов» отключен. Функциональность может быть восстановлена путем копирования записей реестра и DLL из системы Windows XP .
WINMM.DLL
WINMM.DLL предоставляет доступ к исходному аудио API WinMM .
IMM32.DLL
IMM32 отвечает за вызов и взаимодействие с редактором метода ввода .
библиотеки времени выполнения
MSVCRT.DLL, MSVCP * .DLL и CRTDLL.DLL
MSVCRT.DLL — это стандартная библиотека C для компилятора Visual C ++ (MSVC) с версии 4.2 до 6.0. Он предоставляет программы, скомпилированные этими версиями MSVC, с большинством стандартных функций библиотеки C. К ним относятся манипуляции со строками, выделение памяти, вызовы ввода / вывода в стиле C и другие. MSVCP * .DLL — соответствующая библиотека C ++.
Он поставляется с версиями Windows, начиная с Windows 95 OSR2.5, для использования другими компонентами Windows; более ранние версии поставлялись с библиотекой CRTDLL.DLL . В более старых версиях Windows программы, связанные с MSVCRT.DLL, должны были установить совместимую копию в папке System32, но это способствовало возникновению DLL Hell , потому что многие установщики не смогли проверить версию библиотеки на соответствие установленной версии. перед заменой.
Версии MSVC до 4.0 и от 7.0 до 13.0 использовали разные имена DLL для каждой версии (MSVCR20.DLL, MSVCR70.DLL, MSVCR71.DLL, MSVCP110.DLL и т. Д.). Для установки соответствующей версии требуются приложения, и Microsoft предлагает для этой цели пакеты Visual C ++ Redistributable , хотя в Windows обычно уже установлена одна версия.
В версии 14.0 большая часть среды выполнения C / C ++ была перенесена в новую DLL, UCRTBASE.DLL. Однако программы C / C ++, использующие UCRTBASE.DLL, вынуждены связываться с другой новой DLL, VCRuntime, имя которой продолжает изменяться с каждой версией MSVC (например, VCRUNTIME140.DLL).
Исходный код для библиотек времени выполнения включен в Visual C ++ для справки и отладки (например, в C: \ Program Files \ Microsoft Visual Studio 11.0 \ VC \ crt \ src ). Теперь код доступен на GitHub .
Эта библиотека времени выполнения используется программами, написанными на Visual C ++ и некоторых других компиляторах (например, MinGW ). Некоторые компиляторы имеют свои собственные библиотеки времени выполнения.