Hal.dll

Эта DLL - сердце операционной системы. Расшифровывается её название как Hardware Abstraction Layer - уровень аппаратной абстракции. Именно благодаря наличию такого уровня Windows имеет возможность работы на разных аппаратных платформах. В зависимости от того, какая именно аппаратная платформа наличествует на вашем компьютере, вместо hal.dll может присутствовать один из следующих файлов: Halapic.dll, Halmps.dll, Halacpi.dll, Halaacpi.dll, Halmacpi.dll.

Kernel32.dll

Следующая после уровня аппаратной абстракции библиотека из состава ядра операционной системы. О том, что без этой библиотеки работа ядра ОС невозможна, говорит уже само её название. Kernel32.dll отвечает за обработку памяти, операции ввода-вывода и прерывания - то есть, за все основные действия операционной системы с приложениями.

Ntdll.dll

Эта библиотека - своеобразный мост между теми библиотеками, которые работают в ядре операционной системы, и библиотеками, работающими в пользовательском режиме. Эти два режима имеют ряд существенных отличий, и без существования этой DLL'ки было бы невозможно применять многие старые приложения в новых версиях Windows - во многом совместимость между разными версиями ОС держится именно на ней.

Gdi32.dll

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

User32.dll, Comctl32.dll, Comdlg32.dll

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

Advapi32.dll

Думаю, понятие системного реестра знакомо каждому читателю "Компьютерных вестей". Вполне естественен тот факт, что ОС Windows предоставляет пользовательским приложениям специальные функции доступа к реестру, которые как раз и вынесены в Advapi32.dll.

Mpr.dll

Работа с сетью - тоже прерогатива операционной системы. Собственно, именно для работы с сетью и нужна mpr.dll. Взаимодействие с другими компьютерами в локальной сети, поддержка работы с сетевыми устройствами, поддержка соединения - вот далеко не полный список того, что ложится на плечи этой библиотеки.

Msvcrt.dll

Эту библиотеку можно тоже отнести к разряду системных, потому что без неё не запустятся многие стандартные приложения из состава Windows. Она несёт в себе ряд вспомогательных функций для работы с памятью, устройствами ввода и вывода, математическими функциями. Эта DLL должна быть хорошо знакома программистам, работавшим с Visual C++.

Конечно, обо всех системных DLL'ках в одной заметке не расскажешь, но мы всегда можем продолжить разговор о них, если попросите.
Не хватает DLL'ки... Что делать?

Итак, предположим, вы запустили программу, а она вам в ответ выдала сообщение а-ля "Приложению не удалось запуститься, поскольку SuperPuperCool.dll не был найден. Повторная установка приложения может исправить эту проблему". Казалось бы, чего тут думать - система сама же и предлагает не самый кровавый вариант решения этой проблемы, нужно вот только вспомнить, где же лежал дистрибутив этой программы. Нет, система-то, конечно, тысячу раз права, если, конечно, не хватает не какой-нибудь из системных библиотек.

Однако способ может не сработать - это раз. Многие разработчики элементарно забывают добавить в дистрибутив своей программы пару-тройку библиотек, которые написали не они, но которые, тем не менее, используются в их программном продукте. И тогда можно хоть сто раз переустанавливать программу - необходимых библиотек от этого больше ну никак не станет. Второй минус данного способа заключается в том, что нужен дистрибутив программы. Хорошо, если он есть у вас под рукой, а если нет? Большие дистрибутивы и скачивать накладно, и процесс установки более-менее крупных программ тоже вещь небыстрая.

В общем-то, из всего этого вытекает, что имеет смысл ещё до переустановки попробовать какой-нибудь альтернативный способ решения проблемы, а вот уж если он не "прокатит", тогда и отправляться на поиски дистрибутива нужной программы.

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

Искать DLL-файлы можно, конечно, с помощью Google, "Яндекса", "Рамблера" и прочих обычных поисковиков. Но гораздо проще воспользоваться специализированными архивами DLL-файлов, которых на бескрайних просторах Интернета появилось немало. Лично мне больше всего нравятся три следующих: wwwdll-files.com, wwwdll.ru и wwwdlldll.ru. В Байнете пока подобных сайтов не появилось, но, может быть, когда-нибудь и отечественные пользователи на такое решатся. Хотя сейчас вполне достаточно и существующих архивов.

Хотя все сайты предлагают алфавитные списки разных DLL-файлов, гораздо проще будет ввести имя нужной библиотеки в строку поиска, которая есть на главной странице. Но при выборе нужной библиотеки среди результатов поиска нужно быть внимательным: названия некоторых библиотек могут совпадать для разных программ, и нужно следить за тем, чтобы скачивалась DLL'ка именно для той программы, которая у вас не хочет запускаться. Что касается версий библиотек, то совсем не обязательно она должна совпадать с версией самой программы. Так что при прочих равных лучше скачивать самую новую - довольно высока вероятность того, что программа, нуждающаяся в более старой версии, будет работать и с этой. Только если версия библиотеки указана в самом её имени (например, msvbvm50.dll), не надо скачивать библиотеку с другим именем и более новой версией (например, msvbvm60.dll).

Если библиотека не нашлась на одном архиве, попробуйте поискать на другом, третьем, подключите Google - в общем, подойдите к её поиску творчески. Ну а если найти DLL'ку не удастся или программа не захочет с ней работать, - что ж, значит, придётся переустановить эту программу.

Автор: Вадим СТАНКЕВИЧ
Источник: Компьютерные вести

Отредактировано Image (2009-05-28 14:30:51)