Как установить DLL файл на Windows и зарегистрировать?

Иногда возникает необходимость переустановки библиотек dll, которые играют важную роль в функционировании отдельных приложений или системы в целом. Они вылетают вследствие неправильных действий пользователя, модификации вирусами или же удаления одной программы из комплекса использующих одну и ту же библиотеку приложений. Как же исправить эту ошибку?

Как установить и зарегистрировать библиотеку DLL в Windows

Поиск библиотеки

Первый шаг после сообщения об ошибке – вызов меню поиска через кнопку Пуск в windows 7 или значок лупы в десятке и восьмерке. В первом случае строка будет находиться уже на главном меню внизу в левом блоке. Во втором случае это будет отдельное выпадающее меню. В поисковую строку необходимо ввести имя библиотеки с расширением без указания пути. Например, если ошибка ссылается на C://Users/Nastroyvse/video.dll, то в строке нужно написать лишь video.dll. В случае успеха в Проводнике или непосредственно в окне поиска отобразится новый путь к указанному файлу. Далее возможно два пути. Первый – скопировать этот файл в указанную ошибкой папку и перезапустить компьютер. При вызове программа должна увидеть эту библиотеку. Если этого не произошло или данная библиотека отсутствует на компьютере, придется пройти регистрацию.

Как зарегистрировать DLL в Windows

Регистрация библиотек DLL в Windows происходит очень просто и быстро. Вы можете это сделать, если у вас стоит Windows 7, 8 или 10. Еще хочу отметить, что у вас должны быть права администратора. В данном пункте я покажу 3 способа регистрации динамических библиотек.

Первый способ

Он самый популярный и используемый пользователями.

Открываем окно «Выполнить», с помощью клавиш Win+R и вводим туда команду regsvr32.exe название_файла.

Другими словами, команда может выглядеть так (покажу на примере файла d3dx9_27.dll):

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

При удачной регистрации вы должны увидеть положительный ответ, либо сообщение об ошибке, что модуль загружен… Но об это я скажу чуть позже.

Второй способ

Тут мы воспользуемся командной строкой, но открыть ее нужно от имени администратора, надеюсь вы знаете, как это сделать.

Далее, нужно ввести похожую команду:

То есть мы выполняем все тоже самое, только в командной строке.

Должно снова появиться сообщение, что библиотека зарегистрирована, либо ошибка.

Третий способ

Метод редко кем используемый, но тоже рабочий. Берете свой dll-файл и нажимаете на нем правой кнопкой мыши, в появившемся контекстном меню выбираете пункт «Открыть с помощью» и идете в папку Windows/System32, и ищете там программу regsvr32.exe, через которую и будем открывать библиотеку.

Где скачать библиотеки

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

  • https://ru.dll-files.com/;
  • https://www.dll.ru/;
  • https://dlltop.ru/.

При скачивании файлов обращайте внимание на разрядность и версию операционной системы. Узнать их можно в меню «Мой компьютер» в Windows 7 или на вкладке Компьютер Проводника в Windows 10. Для вызова сведений нажмите правой кнопкой мыши или тачпада. В выпавшем контекстном меню нажать уже левой кнопкой пункт «О системе». Неправильно подобранная библиотека будет функционировать с ошибками или перестанет запускаться вовсе.

Файлы с расширением DLL – что это и для чего нужны

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

Если же программа (или библиотека) будет повреждена, то это не скажется на работоспособности остального ПО.

Когда и как появились

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

Но со временем выяснилось, что в ряде случаев возникает тупиковая ситуация, которая получила название «DLL hell». Такое случалось, когда два или более приложений требуют доступа к разным (и не совместимым друг с другом) библиотекам. В результате Windows начинала работать нестабильно.

Только в последних версиях ОС удалось создать механизм, предотвращающий возникновения сбоев – технологию Side-by-side assembly, который испытали в XP, но окончательно он стал применяться в Windows Vista.

Место установки изменить нельзя

После скачивания правильной версии ее необходимо установить в системную корневую папку. Ее название зависит от разрядности операционной системы. Для 32-разрядых систем это C:/Windows/System32, а для 64-разрядных – C:/Windows/SysWOW64. На компьютере могут присутствовать обе папки. У каждой из них есть свой регистратор библиотек. При регистрации файлов нужно открывать правильный. Всего же способ регистрации существует 3.

Несколько слов напоследок

Остается дать несколько дельных советов по проведению процессов регистрации. Прежде всего, обращайте внимание на разрядность системы. Скачиваемый файл должен иметь ту же битность. Соответственно, помещайте файлы в вышеуказанные локации. В противном случае регистрация результата не даст. Если для выполнения какой-то операции требуется задание прав администратора, соглашайтесь в обязательном порядке. Если для загружаемых библиотек предусмотрен выпуск обновлений, скачивайте наиболее свежую и актуальную на текущий момент версию файла. Это избавит вас от появления разного рода конфликтов между установленными программами их дополнительно инсталлируемыми компонентами. Наконец, если искомые файлы все-таки были скачаны с сомнительного ресурса, а их копирование в системный раздел производится, например, с флешки, сначала проверяйте их на предмет наличия вирусов, используя для этого стандартные встроенные в меню ПКМ «Проводника» команды самого антивируса.

Win+R

Заключается в вызове регистратора regsvr.exe комбинацией этих клавиш. Откроется строка «Выполнить», куда нужно вписать такую команду: regsvr32.exe путь_к_файлу_dll. Желательно указывать и путь к regsvr32, чтобы не вызывать путаницу.

ВАЖНО. У 64-разрядных операционных систем два файла regsvr32.exe – и в System32 и в SysWOW64. Они совершенно разные, нужно это учитывать. Файл регистратора для 64 разрядов находится в папке System32!

После нажатия ОК система отобразит сообщение о результате обработки запроса.

Замена повреждённых или удалённых системных файлов Windows вручную

Для восстановления работоспособности Windows существует масса способов – точки отката, бэкап, бэкап и откат её реестра, восстановление целостности её файлов, переустановка Microsoft Visual C++ и прочих системных компонентов. Но только предварительно сделанный бэкап системы можно считать панацеей, универсальным «лекарством» от всех возможных проблем. Как быть, если нужно восстановить системные файлы, а у нас ни бэкапа нет, ни инструмент восстановления системных файлов не работает?

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

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

Что для этого необходимо? Нам понадобится установочный ISO нужной версии Windows. Открываем его архиватором 7-Zip.

Открываем папку «sources», далее – «install».

Dism /Get-WimInfo /WimFile:J:\sources\install.wim

Указываем путь распаковки.

И помещаем этот файл в папку «System32» внутри каталога «Windows» на диске С текущей системы.

Причины отказа в регистрации

  1. Не все файлы из Интернета требуют регистрации. Для этого у них должна быть точка входа DLL Registration Server.
  2. Также файл может оказаться пустышкой, а не библиотекой.

Но это можно исправить достаточно просто.

  • Авторские библиотеки можно прогнать через программу regasm.exe.
  • При возникновении ошибки регистрации делайте упор на поиск сведений о самом файле, а не на поиск источника. Это повышает шансы на скачку из официального сайта без лишних хлопот.

Типичные ошибки регистрации

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

Правила создания функций

Очевидно, что в создаваемую нами собственную библиотеку DLL необходимо поместить функцию со следующими входными параметрами (пример описания на Ассемблере):

1
2

3

4

proc EntryPoint hWnd,hInstance,lpCmdLine,nCmdShow

. . .

ret

endp

При создании экспортируемой функции (в примерах выше она имеет псевдо-имя EntryPoint) необходимо учитывать следующие моменты:

  1. Вместо имени EntryPoint, желательно указать фактическое имя функции. Обратите внимание, что «точка входа», используемая программой rundll32, не зависит от функции (точки входа) DllEntryPoint, которая в 32-разрядных библиотеках DLL осуществляет обработку процессов и оповещение о подключении и отключении потоков. Это точка входа в саму функцию.
  2. Функцию, являющуюся точкой входа для программы rundll32, необходимо определить, используя соглашение о вызовах _stdcall (в C++ по умолчанию для атрибута _stdcall используется значение CALLBACK). Иначе, по умолчанию будет использоваться другое соглашение о вызовах _cdecl. Это приведет к аварийному завершению работы программы rundll32 после вызова данной функции.

Функции, являющейся точкой входа, передаются следующие параметры:

ПараметрОписание
hWndИдентификатор (дескриптор) родительского окна, который обычно используется при создании окон в функциях загружаемой библиотеки DLL.
hInstanceДескриптор (заголовок экземпляра) выбранной библиотеки DLL. Иначе, стартовый адрес процесса DLL в адресном пространстве.
lpCmdLineКомандная строка, передаваемая библиотеке. Данная строка представляет собой последовательность символов, завершающуюся символом с кодом 0.
nCmdShowРежим отображения окон выбранной библиотеки. (данные, передаваемые функции CreateProcess).

Алгоритм работы rundll32

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

  1. Вызывается функция LoadLibrary, которая загружает выбранную DLL;
  2. Вызывается функция GetProcAddress, для получения адреса точки входа вызываемой из библиотеки функции;
  3. Вызывается проверка соответствия функции специфическим требованиям;
  4. Вызывается сама функция и ей передаются входные параметры;
  5. Происходит выход из функции по завершению её работы;
  6. Библиотека DLL выгружается из памяти процесса.

Как увидеть полный путь запуска rundll32

Если в системе ни с того ни с сего вдруг удалось обнаружить запущенный процесс rundll32, и вам стало интересно, а какой же, собственно, функционал утилита выполняет, то можно определить это по полному пути запуска утилиты rundll32. Посмотреть полный путь запуска, то есть параметры командной строки можно при помощи системной утилиты Диспетчер задач Windows (Task Manager). Вызовите «Диспетчер задач» (Ctrl+Shift+Esc), перейдите в меню «Вид», выберите пункт «Выбрать столбцы..» и пролистав список вниз, найдите пункт «Командная строка» и отметьте его чекбокс, затем нажмите ОК. Результатом будет появление в главном окне диспетчера задач в параметре «командная строка» полной строки запуска rundll32.

Рейтинг
( 2 оценки, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями: