Как проверить регистрацию библиотеки dll. REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows

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

Скачивание и установка DLL-файлов

При появлении какой-то ошибки обычно указывается название DLL-файла, которого не хватает. Вам нужно ввести название этого файла в поисковике и скачать. Например, нам нужно скачать файл d3dx9_27.dll. Мы вводим это название в Яндексе или Google и скачиваем с какого-нибудь сайта. Наиболее безопасный и популярный сайт, с которого я сам скачиваю DLL-файлы – DLL-FILES.com. Там есть поле, в которое можно ввести название файла.

Теперь нужно разобраться, куда кидать этот файл dll. В разных системах местоположение этих файлов разное, поэтому я начну с ранних ОС:

  • Windows 95/98 – помещаем файл в папку C:\Windows\System ;
  • Windows NT или 2000 – помещаем файл в папку C:\WINNT\System32 ;
  • Windows XP, 7, 8, 10 – помещаем файл в папку (для 32-х битных систем в C:\Windows\System32 , а для 64-х битных в C:\Windows\SysWOW64 ).

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

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

А что делать, если вы закинули все нужные файлы в папку, но программа или игра по-прежнему не запускается? Тогда можно попробовать зарегистрировать библиотеку в системе, сейчас покажу, как это сделать.

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

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

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

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

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

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

regsvr32.exe d3dx9_27.dll


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

regsvr32.exe C:/Windows/system32/d3dx9_27.dll


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

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

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

regsvr32.exe путь_к_файлу_dll

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


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

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

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

Ошибка при регистрации DLL-файлов

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

Такие ошибки могут возникать по следующим причинам:

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

Как решить проблему?

  • Опытные пользователи могут использовать regasm.exe;
  • Попробуйте в интернете скачать этот же файл, только из другого источника. Либо посмотрите, что это за файл и воспользуйтесь специальными установщиками DLL-файлов. Некоторые библиотеки поставляются с каким-либо программным обеспечением, например, DirectX.
  • При скачивании какого-то приложения антивирус мог удалить в процессе установки важные DLL-библиотеки, которые были в установщике, поэтому нужно скачать игру с другого источника, либо временно отключить антивирус, и переустановить приложение.

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

Появляется сообщение, что не найден файл *.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 , как правило, должны быть расположены в папке \Windows\System32 (реже – в каталоге конкретной программы). Если файлы присутствуют, нужно зарегистрировать их.

Если требуемых файлов нет, найдите их в Интернете, скачайте и скопируйте в папку \Windows\System32 и в каталог программы. Теперь нужно зарегистрировать их.

Как зарегистрировать файлы *.dll

Регистрация файлов *.dll производится с помощью сервера регистрации regsvr32.exe (дисковый адрес которого – \Windows\System32 ).

Рассмотрим способы регистрации:

1. Нажмите кнопку Пуск ;

– в текстовое поле Найти программы и файлы введите regsvr32 имя_файла –> Enter .

2. Нажмите кнопку Пуск ;

– в текстовое поле Найти программы и файлы введите cmd ;

– в появившемся перечне (под заголовком Программы ) нажмите правой кнопкой cmd.exe ;

– из контекстного меню выберите Запуск от имени администратора ;

– введите пароль, если появится соответствующий запрос;

– в открывшемся окне после приглашения системы введите regsvr32 имя_файл , нажмите Enter .

3. Если вы пользуетесь файловым менеджером Total Commander , то можно выполнить регистрацию файлов *.dll с помощью командной строки Total Commander .

Если регистрация файлов *.dll прошла успешно, появится окно RegSvr32 с соответствующим сообщением, например: «Успешное выполнение DllRegisterServer в C:\WINDOWS\system32\msvbvm50.dll» :


Примечания

1. При регистрации файлов *.dll происходит их запись в Реестр Windows . При этом в ветке создается соответствующий параметр REG_DWORD со значением 1 .

2. Использование команды regsvr32 :

regsvr32 ] DLL-файл

/u – отменяет регистрацию DLL ;

/s – «тихий» режим – окна сообщений не отображаются;

/i – вызывает DllInstall , передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall ;

Иногда при запуске какой-либо программы появляется сообщение, что не найден файл *.dll (например, VCompLib.dll) или *.ocx (например, seon.ocx). При этом программа, естественно, не запускается.

Сообщения об ошибках могут быть разные (это зависит в основном от того, на каком языке написана программа).

Например:

«Component ‘MSCOMM32.OCX’ not correctly registered: file is missing or invalid» ,

«Приложению не удалось запуститься, поскольку MSVBVM50.DLL не был найден. Повторная установка приложения может исправить эту проблему»

«Runtime DLL/OCX File error» .

При этом в Windows Vista дополнительно появится окно Помощника по совместимости программ с сообщением

«Эта программа требует отсутствующий компонент Windows».

Краткая справка

DLL (от англ. Dynamic-Link Library Microsoft Windows DLL ActiveX и драйвера. В мире UNIX shared objects dll exe
ActiveX Microsoft COM .
COM (сокр. от англ. Component Object Model Microsoft OLE и ActiveX ).
OLE (сокр. от англ. Object Linking and Embedding Microsoft на основе COM (OLE 1, OLE 2, OLE automation , OLE Database и др.).
ActiveX control управляющий элемент ActiveX ; введенное в 1996 г. Microsoft OLE controls , OCXs , OLE custom controls Internet .
OCX (сокр. от англ. OLE Custom eXtension ) – перемещаемые элементы управления, OLE custom control , OLE control . Упрощенно можно сказать, что файлы *.ocx – это элементы управления ActiveX dll .
OLE custom control OLE , OLE control .
OLE control управляющие элементы OLE OLE ActiveX control . Синонимы: OCX , OLE custom control .

Способы решения проблемы

Если возникают ошибки, связанные с файлами *.dll и *.ocx , необходимо:

1. Переустановить программу.

2. Если переустановка программы не помогает, нужно проверить наличие в системе требуемых файлов. Файлы *.dll и *.ocx , как правило, должны быть расположены в системной папке \WINDOWS\system32 (реже – в каталоге конкретной программы). Если файлы присутствуют, нужно зарегистрировать их.

Если требуемых файлов нет, найдите их в Интернете, скачайте и скопируйте в папку \WINDOWS\system32 и в каталог программы. Теперь нужно зарегистрировать их.

Как зарегистрировать файлы *.dll и *.ocx

При регистрации файлов *.dll и *.ocx происходит их запись в Реестр Windows (это можно сделать и вручную). При этом в ветке создается параметр REG_DWORD , например C:\Program Files\InterVideo\Common\Bin\StorageTools.dll или C:\WINDOWS\System32\MSCOMCTL.OCX, со значением 1 .

Регистрация файлов *.dll и *.ocx производится с помощью сервера регистрации regsvr32.exe (дисковый адрес которого – C:\WINDOWS\system32).

Рассмотрим способы регистрации:

1. Нажмите Пуск – Выполнить… – Запуск программы – regsvr32 имя_файла – OK .

2. Нажмите Пуск – Выполнить… – Запуск программы – cmd – OK . Запустится интерпретатор команд cmd.exe , после приглашения системы C:\Documents and Settings\Имя_пользователя> введите regsvr32 имя_файла , например, regsvr32 seon.ocx.

3. Если вы пользуетесь файловым менеджером Total Commander , то можно выполнить регистрацию файлов *.dll и *.ocx с помощью командной строки Total Commander .

Примечание

Использование команды regsvr32 :

regsvr32 ] DLL-файл

/u – отменяет регистрацию DLL ;

/s – «тихий» режим – окна сообщений не отображаются;

/i – вызывает DllInstall , передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall ;

/n – не вызывает DllRegisterServer ; это может использоваться с ключом /i.

Если регистрация файлов *.dll и *.ocx прошла успешно, появится соответствующее сообщение, например, в Windows Vista появится окно RegSvr32 с сообщением «Успешное выполнение DllRegisterServer в C:\WINDOWS\system32\msvbvm50.dll» .

Где искать файлы *.dll и *.ocx

Найти отсутствующие файлы *.dll и *.ocx можно с помощью поисковиков или на следующих ресурсах:

От себя: обратите внимание от имени какого пользователя будет производится регистрация DLL. Для регистрации DLL как правило требуются права локального администратора в системе.

Так же обратите внимание в случае возникновения ошибок на зависимости одних DLL от других. Например «модуль ххххххх.dll загружен, но не удалось выполнить вызов DllRegisterServer, код ошибки 0х80070005» может означать отсутствующие библиотеки DLL в системе (например MSXML).

Для Windows Vista, Windows 7 или Windows 2008 Server распространена проблема регистрации v7plus.dll (кто знает тот поймет что это 🙂).

Тут два пути:

1. Пуск — Все программы — Стандартные — Командная строка — жмем правой кнопкой — Запустить от администратора и далее регистрируем

regsvr32 C:\MyFolder\Folder2\v7plus.dll

DLL

(от англ. Dynamic-Link Library – динамически подключаемая библиотека) – понятие операционной системы Microsoft Windows ; динамическая библиотека, позволяющая многократное применение различными программными приложениями. K DLL иногда причисляют также элементы управления ActiveX и драйвера. В мире UNIX аналогичные функции выполняют так называемые shared objects («разделяемые объекты»). Формат файлов *.dll придерживается тех же соглашений, что и формат исполняемых файлов *.exe , сочетая код, таблицы и ресурсы.

ActiveX

название группы технологий, разработанных Microsoft для программирования компонентных объектных приложений на основе модели COM .

COM

(сокр. от англ. Component Object Model ) – модель компонентных объектов Microsoft , стандартный механизм, включающий интерфейсы, с помощью которых одни объекты предоставляют свои сервисы другим; является основой многих объектных технологий, в том числе OLE и ActiveX ).

OLE

(сокр. от англ. Object Linking and Embedding ) – общее название (до 1996 г.) группы объектно-ориентированных технологий Microsoft на основе COM (OLE 1, OLE 2, OLE automation , OLE Database и др.).

ActiveX control

управляющий элемент ActiveX ; введенное в 1996 г. Microsoft новое название независимых программируемых компонентов, ранее называемых OLE controls , OCXs , OLE custom controls ; в отличие от последних позволяют работать с Internet .

OCX

(сокр . от англ . OLE Custom eXtension ) – перемещаемые элементы управления , OLE custom control , OLE control . Упрощенно можно сказать, что файлы *.ocx – это элементы управления ActiveX , выполняющие примерно те же функции, что и файлы *.dll .

OLE custom control

специализированный управляющий элемент OLE , OLE control .

OLE control

управляющие элементы OLE , программируемые компоненты-приложения с интерфейсом на базе OLE , позволяющим легко включать их в другие приложения; c 1996 г. называются ActiveX control . Синонимы: OCX , OLE custom control .

Нет похожих постов...

Очень часто у юзеров возникает вопрос, как зарегистрировать DLL в седьмой или восьмой версии Windows. Как правило, этот вопрос появляется после того, как система сообщает пользователю, что на ПК отсутствует необходимая библиотека.

По правде говоря, зарегистрировать библиотеку довольно просто – необходимо выполнить всего один шаг. Однако, для выполнения этого необходимо обладать правами администратора.

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

Три метода зарегистрировать DLL в ОС

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

Все манипуляции по регистрации DLL будут выполняться с использованием regsvr32.exe, но тут необходимо обратить внимание, что при применении 64-битной системы этот файл может располагаться в двух директориях: SysWOW64 и System32. Стоит отметить, что эти файлы разные, при этом 64-бит располагается в директории System32. Рекомендуется в каждом случае писать путь к regsvr32.exe, а не только название файла.

Первый метод довольно распространенный, и его можно часто встретить в интернете. Он состоит из нескольких манипуляций. Изначально необходимо нажать Win+R, а потом в окне «Выполнить» следует прописать regsvr32.exe путь_к_файлу_dll и нажать OK. Кроме того, «Выполнить» можно отыскать в меню «Пуск», если оно активировано.

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

Следующий метод подразумевает запуск строки команд под администратором и написания такой же команды, что и в вышеописанном методе. Нужно открыть строку команд. В «восьмерке» для этого нужно нажать Win+X, а потом указать необходимый пункт. В «семерке» строку команд можно отыскать в «Пуске». Требуется щелкнуть по ней ПКМ и указать «Запуск от имени администратора».

Затем следует ввести regsvr32.exe путь_к_dll, как и в прошлом методе. Однако, регистрация, скорее всего, не пройдет.

Кроме того, существует метод, который понадобится в редких случаях. Требуется щелкнуть ПКМ по DLL, подлежащей регистрации, и указать «Открыть с помощью». После этого следует кликнуть «Обзор» и в директориях System32 или SysWow64 отыскать regsvr32.exe, и с его помощью запустить DLL.

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

Почему не проходит регистрация DLL

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

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

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

Устранить эту проблему можно по-разному. Программистам при регистрации своей библиотеки можно использовать regasm.exe. Для обычных пользователей рекомендуется поискать, для чего необходим этот файл. Имея эту информацию, можно загрузить установщик, который инсталлирует все необходимые библиотеки и самостоятельно их зарегистрирует в операционке.

К примеру, все файлы, которые начинаются на d3d, можно установить с помощью DirectX. А библиотеки msvc устанавливаются с помощью Visual Studio Redistributable. Если после скачивания с торрента какой-либо игры она не открывается, необходимо просмотреть отчеты антивируса, поскольку он мог ликвидировать измененные DLL.

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

Модель многокомпонентных объектов (C omponent O bject M odel - СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения (сервер) предоставляет свои сервисы другой (клиент) , что обеспечивается применением определенных протоколов взаимодействия между ними (между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:

HKLM\SOFTWARE\Classes\CLSID - при регистрации COM-объектов библиотек для всех пользователей системы;

HKCU\SOFTWARE\Classes\CLSID - при регистрации COM-объектов библиотек только лишь для текущего пользователя;

HKLM\SOFTWARE\Wow6432Node\Classes\CLSID - для регистрации 32-битных DLL в 64-битных ОС Windows;

При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:

{23170F69-40C1-278A- 1000-000100020000

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

Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :

64-разрядная версия в каталоге %systemroot%\System32 (обычно - C:\Windows\System32)

32-разрядная версия в каталоге %systemroot%\SysWoW64 (обычно – C:\Windows\SysWoW64)

Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора (”Запуск от имени администратора”).

При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:

Формат командной строки REGSVR32:

Regsvr32 ] DLL-файл

/u - - вызывает DllUnInstall, отменяет регистрацию сервера

/i - вызывает DllInstall, передавая ей в параметре необязательную строку_команд;

/n - не вызывает DllRegisterServer; может использоваться с ключом /I;

/s – "тихий" режим; окна сообщений не отображаются;

Примеры использования regsvr32.exe :

regsvr32 /u "C:\Program Files\7-Zip\7-zip32.dll" - отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:

Для подавления вывода сообщения, используется параметр /s :

regsvr32 /u /s "C:\Program Files\7-Zip\7-zip.dll"

В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:

regsvr32 "C:\Program Files\7-Zip\7-zip.dll"

Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :

%SystemRoot%\syswow64\regsvr32.exe

Или без использования переменных окружения:

C:\Windows\System32\regsvr32.exe

В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:

Получить в удобном виде список всех зарегистрированных в системе объектов.

Выполнить регистрацию или отмену регистрации выбранных объектов.

Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.

Зарегистрировать или перерегистрировать указанный файл.

Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.