Регистрация библиотеки DLL. Что и как делать? Featured

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

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

Способ 1: OCX/DLL Manager

OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.

Для этого вам нужно будет:

  1. Нажать на пункт меню «Register OCX/DLL» .
  2. Выбрать тип файла, который будете регистрировать.
  3. При помощи кнопки «Browse» указать местоположение DLL.
  4. Нажать на кнопку «Register» и программа сама зарегистрирует файл.

OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.

В процессе регистрации, система может выдать вам ошибку, говорящую о том, что требуются права администратора. В таком случае, нужно запустить программу нажав на неё правой кнопкой мыши, и выбрать «Запуск от имени администратора» .

Способ 2: Меню «Выполнить»

Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:


Способ 3: Командная строка

Регистрация файла через командную строку не сильно отличается от второго варианта:

  1. Выберите команду «Выполнить» в меню «Пуск» .
  2. Впишите в открывшемся поле для ввода cmd .
  3. Нажмите «Enter» .

Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.

Надо отметить, что у окна командной строки имеется функция вставки скопированного текста (для удобства). Найти это меню можно, нажав правой кнопкой на пиктограмме в левом верхнем углу.

Способ 4: Открыть с помощью


Возможные ошибки

«Файл не совместим с установленной версией Windows» - это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.

«Точка входа не найдена» — не все библиотеки DLL можно зарегистрировать, некоторые из них просто не поддерживают команду DllRegisterServer. Также, возникновение ошибки может быть вызвано тем, что файл уже зарегистрирован системой. Существуют сайты, распространяющие файлы, которые в реальности не являются библиотеками. В таком случае, естественно, зарегистрировать ничего не выйдет.

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

Регистрация файлов с расширением *.dll и *.ocx

Спойлер: Справка (нажмите, чтобы открыть)

  • 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 и *.ocx ?

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

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

1). Нажмите Пуск – Выполнить…(или одновременно нажать кнопки win и r) – вводим – regsvr32_ имя_файла_ – OK.

2). Нажмите Пуск – Выполнить… – Запуск программы – cmd – OK. Запустится интерпретатор команд cmd.exe(командная строка), после приглашения системы

Код:

C:\Documents and Settings\Имя_пользователя>

введите regsvr32 _имя_файла, например,

Код:

Regsvr32 Koza.dll

.

3)Воспользоваться вот таким твиком,который добавляет в контексное меню DLL и OCX файлов пункты "Регистрация" и "Отмена регистрации"

Код:

Windows Registry Editor Version 5.00 @="regsvr32.exe \"%1\"" @="regsvr32.exe /u \"%1\"" @="regsvr32.exe \"%1\""


Для удаления данной функции из контексного меню примените твик:

Код:

Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\dllfile\Shell] [-HKEY_CLASSES_ROOT\dllfile\Shell\Регистрация] [-HKEY_CLASSES_ROOT\dllfile\Shell\Регистрация\command] @="regsvr32.exe \"%1\"" [-HKEY_CLASSES_ROOT\dllfile\Shell\Отмена регистрации] [-HKEY_CLASSES_ROOT\dllfile\Shell\Отмена регистрации\command] @="regsvr32.exe /u \"%1\"" [-HKEY_CLASSES_ROOT\ocxfile\Shell] [-HKEY_CLASSES_ROOT\ocxfile\Shell\Регистрация] [-HKEY_CLASSES_ROOT\ocxfile\Shell\Регистрация\command] @="regsvr32.exe \"%1\""


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

________________________

Параметры regsvr32:

Regsvr32: ] DLL-файл

/u - Отменяет регистрацию DLL
/s - "Тихий" режим; окна сообщения не отображаются
/i - Вызывает DllInstall, передавая параметром необязательную строку_команд,
при использовании с ключом /u вызывает DllUnInstall
/n - Не вызывает DllRegisterServer; это может использоваться с ключом /i

Модель многокомпонентных объектов (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”, вызываемого правой кнопкой мышки.

2. После того как скопировали библиотеку нажмите комбинацию кавишь WIN+R и в открывшееся окно вставьте:

regsvr32 <имя библиотеки>

Например regsvr32 mfc100

И нажмите Enter

Если появится такая ошибка,

то попробуйте нажать ту же самую комбинацию клавиш и вставить следующее:

%WINDIR%\SysWOW64\regsvr32 <имя библиотеки>

Например %WINDIR%\SysWOW64\regsvr32 mfc100

Если библиотека корректная, то регистрация пройдет успешно, и вы увидите такое сообщение

P.S. Если необходимо зарегистрировать библиотеку,которая находится в другом каталоге(не системном) то необходимо указать полный путь к библиотеке.

Например regsvr32


1. Скопируйте скаченну библиотеку в нужную системную директорию. (это либо system32 , либо SysWOW64 )*

* в какую директорию копировать библиотеки зависит от разрядности приложения. Если вы точно не знаете в какую папку копировать, копируйте в обе J

2. Скачайте архив внизу поста , разархивируйте , запустите файл reg.bat с правами администратора , выберите нужную вам разрядность,нажмите Enter и вставьте имя библиотеки , которую вы скопировали в системную директорию. Все должно пройти успешно и Вы увидите данное сообщение.

Если же увидите такое сообщение

То выберите другую разрядность и попытайтесь снова провести регистрацию. Все должно пройти успешно.

P.S. Если необходимо зарегистрировать библиотеку,которая находится в другом каталоге(не системном), то в имени библиотеки необходимо указать полный путь к библиотеке.

Например C:\Program Files\1Cv77\BIN\V7PLUS.dll

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

Первый способ регистрации DLL

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

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

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

  1. Вам нужно попасть в окно "Выполнить". Его можно открыть несколькими путями. В меню "Пуск" пройти по пути "Все программы → Стандартные" и там уже выбрать "Выполнить". Можно также в том же меню "Пуск" совершить поиск с названием утилиты. Но самый простой способ - это нажать клавиши Win+R.
  2. Когда окно открыто, в поле для ввода нужно прописать команду "regsvr32.exe", после этого указать путь к файлу, который нужно зарегистрировать.
  3. Осталось нажать лишь кнопку "ОК".

Просим обратить внимание на то, что путь к файлу должен указываться полностью. Начиная с диска C. Например: regsvr32.exe c: windows /system32/openal32.dll.

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

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

Второй способ регистрации DLL

Второй способ практически ничем не отличается, лишь местом действий. Вам нужно попасть в утилиту "Командная строка", сделать это можно также несколькими способами: или в меню "Пуск" в папке стандартные открыть одноименную программу, или вызвав окно "Выполнить", ввести Решать только вам.

Теперь перед вами открыта командная строка, в ней нужно ввести абсолютно такие же данные, которые вводились в первом способе. То есть изначально указать программу, которая будет работать с dll (regsvr32.exe), а затем путь к файлу.

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

Третий способ регистрации DLL

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

Вам необходимо всего-навсего открыть DLL-файл с помощью regsvr32.exe. Вот как это сделать:

  1. На нужном DLL-файле нажмите ПКМ.
  2. В меню выберите "Открыть с помощью...".
  3. В окошке найдите и нажмите кнопку "Обзор".
  4. Проложите путь к файлу regsvr32.exe, он находится в папке System32, которая находится в папке Windows на диске C.
  5. Нажмите "Открыть".

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