Регистрируем файл DLL в ОС Windows
REGSVR32 – регистрация или отмена регистрации библиотеки DLL в реестре Windows.
Модель многокомпонентных объектов ( C omponent O bject M odel — СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:
HKLMSOFTWAREClassesCLSID – при регистрации COM-объектов библиотек для всех пользователей системы;
HKCUSOFTWAREClassesCLSID – при регистрации COM-объектов библиотек только лишь для текущего пользователя;
HKLMSOFTWAREWow6432NodeClassesCLSID – для регистрации 32-битных DLL в 64-битных ОС Windows;
При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:
При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe , имеющейся во всех версиях операционных систем семейства Windows .
Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :
– 64-разрядная версия в каталоге %systemroot%System32 (обычно – C:WindowsSystem32)
– 32-разрядная версия в каталоге %systemroot%SysWoW64 (обычно – C:WindowsSysWoW64)
Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).
При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:
Формат командной строки REGSVR32:
Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u — – вызывает DllUnInstall, отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;
/n — не вызывает DllRegisterServer; может использоваться с ключом /I;
/s – “тихий” режим; окна сообщений не отображаются;
Примеры использования regsvr32.exe :
regsvr32 /u “C:Program Files7-Zip7-zip32.dll” – отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:
Для подавления вывода сообщения, используется параметр /s :
regsvr32 /u /s “C:Program Files7-Zip7-zip.dll”
В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:
regsvr32 “C:Program Files7-Zip7-zip.dll”
Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :
Или без использования переменных окружения:
В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:
– Получить в удобном виде список всех зарегистрированных в системе объектов.
– Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.
– Выполнить регистрацию или отмену регистрации выбранных объектов.
– Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.
– Зарегистрировать или перерегистрировать указанный файл.
Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.
Windows 7: как зарегистрировать файлы *.dll?
Иногда при запуске какой-либо программы в Windows 7 появляется сообщение, что не найден файл *.dll (например, VCompLib.dll). При этом программа, естественно, не запускается.
Сообщения об ошибках могут быть разные (это зависит в основном от того, на каком языке написана программа), например: «Component ‘MSCOMM32.OCX’ not correctly registered: file is missing or invalid» , или «Приложению не удалось запуститься, поскольку MSVBVM50.DLL не был найден. Повторная установка приложения может исправить эту проблему», или «Runtime DLL/OCX File error». При этом может появиться окно Помощника по совместимости программ с сообщением Эта программа требует отсутствующий компонент Windows .
Способы решения проблемы
Если возникают ошибки, связанные с файлами *.dll, необходимо:
1. Переустановить программу.
2. Если переустановка программы не помогает, нужно проверить наличие в системе требуемых файлов.
Файлы *.dll, как правило, должны быть расположены в системной папке WindowsSystem32 (реже – в каталоге конкретной программы). Если файлы присутствуют, нужно зарегистрировать их.
Если требуемых файлов нет, найдите их в Интернете, скачайте и скопируйте в папку WindowsSystem32 и в каталог программы. Теперь нужно зарегистрировать их.
Как зарегистрировать файлы *.dll
Регистрация файлов *.dll производится с помощью сервера регистрации regsvr32.exe (дисковый адрес которого – WindowsSystem32).
Рассмотрим способы регистрации:
1. Нажмите кнопку Пуск;
– в текстовое поле Найти программы и файлы введите regsvr32 имя_файла – > Enter .
2. Нажмите кнопку Пуск;
– в текстовое поле Найти программы и файлы введите cmd;
– в появившемся перечне (под заголовком Программы) нажмите правой кнопкой мыши cmd.exe;
– из контекстного меню выберите Запуск от имени администратора;
– введите пароль, если появится соответствующий запрос;
– в открывшемся окне Интерпретатора команд Windows после приглашения системы введите regsvr32 имя_файл , нажмите Enter.
3. Если вы пользуетесь файловым менеджером Total Commander, то можно выполнить регистрацию файлов *.dll с помощью командной строки Total Commander.
Если регистрация файлов *.dll прошла успешно, появится окно RegSvr32 с соответствующим сообщением, например: «Успешное выполнение DllRegisterServer в C:WINDOWSsystem32msvbvm50.dll»:
1. При регистрации файлов *.dll происходит их запись в Реестр Windows. При этом в ветке [HKEY_LOCAL_MACHINESOFTWARE
MicrosoftWindowsCurrentVersionSharedDLLs] создается соответствующий параметр REG_DWORD со значением 1.
2. Использование команды regsvr32:
regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u – отменяет регистрацию DLL;
/s – «тихий» режим – окна сообщений не отображаются;
/i – вызывает DllInstall, передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall;
/n – не вызывает DllRegisterServer; это может использоваться с ключом /i.
Регистрация библиотеки DLL в Windows: подробная инструкция
Часто пользователи Windows сталкиваются с проблемами отсутствия dll файлов (DynamicLinkLibrary) на компьютере. Это проявляется при запуске программ и, особенно, современных игр. После копирования недостающей библиотеки в системный каталог (кто не знает, где находится библиотека dll в windows 7, подскажу, — это папка %WINDIR%system32 или %WINDIR%SysWOW64 в 64-хбитной редакции операционки) игра не всегда ее находит. А все потому, что dll-ка – не зарегистрирована.
Все, что для этого необходимо, — пара минут времени и администраторские привилегии.
Три метода регистрации DLL в ОС
Если dll файл уже скопирован в соответствующий каталог, выполняем следующие действия:
- Вызываем окно «Выполнить», нажав сочетание клавиш «Win+ R».
- Вводим шаблонную команду «regsvr32 file_name.dll».
- Кликаем «Ок» или «Enter».
Команду можете вводить и в поисковую строку «Пуска».
File_name.dll – имя файла, имеющего формат dll, если он расположен в системном каталоге.
Второй метод зарегистрировать библиотеку dll в windows 7 – ввод аналогичной команды, но в текстовую строку командного интерпретатора.
- Вызываем командную консоль с администраторскими привилегиями.
- Открываем контекстное меню файла «cmd.exe» (в «восьмерке» жмем «Win + X») и выбираем соответствующий вариант.
Последний, третий метод зарегистрировать dll в Windows 8 и прочих ОС от Microsoft предполагает следование итерациям следующего алгоритма:
- вызываем контекстное меню библиотеки;
- выбираем «Открыть с помощью»;
- жмем «Обзор» и указываем путь к regsvr32.exe (каталог System32 или SysWow64);
- кликаем «Ок».
Таким образом сможем открыть файл dll в windows 7, зарегистрировав его.
Почему не удается зарегистрировать DLL
Возвращаемся к появлению ошибок«не удалось загрузить модуль»,«библиотека несовместима c редакцией Windows», «не обнаружена точка входа» и прочих, не позволяющих выполнить регистрацию нового динамически загружаемого компонента ОС.
Причины появления ошибок:
- отсутствие поддержки регистрации (нет компонента Dll RegisterServer, который позволяет регистрировать dll-ки в Windows);
- файл-пустышка – владельцы сайтов с базой dll библиотек в погоне за посещаемостью и заработком размещают на страницах файлы с нужным названием и расширением, которые на самом деле не являются динамическими библиотеками;
- dll-ка зарегистрирована.
Способы исправления ошибок с регистрацией библиотек в системе.
В первую очередь,найдите информацию о проблемном файле в интернете.
Возможно он принадлежит какой-либо программе – переустановите ее.Например, dll-ки, имена которых начинаются на «d3d» принадлежат компоненту DirectX.После его инсталляции или переустановки все подобные ошибки исчезнут.
Если в имени встречается фраза «audio» — проблема касается аудиокодеков или драйвера звуковой платы, «vc» — установите последнюю редакцию VisualStudioRedistributable.
При невозможности выполнить регистрацию принадлежащей загруженной с торрент-трекеров взломанной игре проверьте карантин антивирусной программы. Вдруг в списке подозрительных объектов находится проблемный dll-файл, восстановите его и добавьте в исключения.
Регистрируем файл DLL в ОС Windows
После установки различных программ или игр можно столкнуться с ситуацией, когда при включении возникает ошибка «Запуск программы произвести невозможно, так как требуемой DLL нет в системе». Несмотря на то, что ОС семейства Windows обычно регистрируют библиотеки в фоновом режиме, после того, как вы скачаете и поместите ваш DLL файл в соответствующее место, ошибка все равно возникает, и система просто его «не видит». Чтобы это исправить, нужно зарегистрировать библиотеку. Как это можно сделать, будет рассказано далее в этой статье.
Варианты решения проблемы
Имеется несколько методов, позволяющих устранить данную проблему. Рассмотрим каждый из них подробнее.
Способ 1: OCX/DLL Manager
OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.
Для этого вам нужно будет:
- Нажать на пункт меню «Register OCX/DLL».
- Выбрать тип файла, который будете регистрировать.
- При помощи кнопки «Browse» указать местоположение DLL.
- Нажать на кнопку «Register» и программа сама зарегистрирует файл.
OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.
В процессе регистрации, система может выдать вам ошибку, говорящую о том, что требуются права администратора. В таком случае, нужно запустить программу нажав на неё правой кнопкой мыши, и выбрать «Запуск от имени администратора».
Способ 2: Меню «Выполнить»
Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:
- Нажать клавиатурную комбинацию «Windows + R» или выбрать пункт «Выполнить» из меню «Пуск».
Ввести имя программы, которая будет регистрировать библиотеку — regsvr32.exe, и путь, по которому размещен файл. В итоге должно получиться так:
где dllname — это имя вашего файла.
Этот пример подойдёт вам в том случае, если операционная система установлена на диск С. Если она находится в другом месте, то нужно будет поменять букву диска или воспользоваться командой:
В таком варианте программа сама находит папку где у вас установлена ОС и запускает регистрацию указанного DLL файла.
В случае с 64-разрядной системой у вас будет две программы regsvr32 — одна находится в папке:
и вторая по пути:
Это разные файлы, которые используются раздельно для соответствующих ситуаций. Если у вас 64-битная ОС, а файл DLL 32-битный, тогда сам файл библиотеки должен быть помещен в папку:
и команда будет выглядеть уже так:
Способ 3: Командная строка
Регистрация файла через командную строку не сильно отличается от второго варианта:
- Выберите команду «Выполнить» в меню «Пуск».
- Впишите в открывшемся поле для ввода cmd.
- Нажмите «Enter».
Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.
Надо отметить, что у окна командной строки имеется функция вставки скопированного текста (для удобства). Найти это меню можно, нажав правой кнопкой на пиктограмме в левом верхнем углу.
Способ 4: Открыть с помощью
- Откройте меню файла, который будете регистрировать, нажав по нему правой кнопкой мыши.
- Выберите «Открыть с помощью» в появившемся меню.
Нажимаете «Обзор» и выберете программу regsvr32.exe из следующей директории:
или в случае, если вы работаете в 64-битной системе, а файл DLL 32-разрядный:
Возможные ошибки
«Файл не совместим с установленной версией Windows» — это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.
«Точка входа не найдена» — не все библиотеки DLL можно зарегистрировать, некоторые из них просто не поддерживают команду DllRegisterServer. Также, возникновение ошибки может быть вызвано тем, что файл уже зарегистрирован системой. Существуют сайты, распространяющие файлы, которые в реальности не являются библиотеками. В таком случае, естественно, зарегистрировать ничего не выйдет.
В заключение нужно сказать, что суть всех предложенных вариантов одна и та же — это просто разные методы запуска команды регистрации — кому как удобнее.
Отблагодарите автора, поделитесь статьей в социальных сетях.