Отменить регистрацию dll. Регистрируем библиотеки DLL в Windows

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

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

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

Данная инструкция расскажет, как выполнить эту процедуру.

Способ 1
  • Нажмите кнопку Пуск
  • В текстовое поле "Найти программы и файлы" введите:
    regsvr32 [полное_имя_файла]
    Полное имя файла при наличии пробелов в пути надо писать в кавычках.

    Например: regsvr32 "C:\Program Files (x86)\1cv77\BIN\v7plus.dll"

  • Нажмите Enter

Способ 2
Примечания
  1. При регистрации файлов *.dll происходит их запись в Реестр Windows. При этом в ветке создается соответствующий параметр REG_DWORD со значением 1.
  2. Использование команды regsvr32:
    regsvr32 ] DLL-файл
    /u
    – отменяет регистрацию DLL
    /s – «тихий» режим – окна сообщений не отображаются
    /i – вызывает DllInstall, передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall
    /n – не вызывает DllRegisterServer. Может использоваться с ключом /i.

Очень часто у юзеров возникает вопрос, как зарегистрировать 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, который нуждается в этой библиотеке.

Если программа не запускается, а в окне ошибки Вы видите сообщение об отсутствии/повреждении файлов.dll или.ocx, тогда данная статья поможет Вам.

Если говорить очень просто, то, что файлы.dll, что файлы.ocx - это системные "библиотеки", необходимые для нормального запуска и стабильной работы программ.

Есть несколько причин, по которым Вы можете видеть ошибки, связанные с этими файлами:

  • Установка была выполнена неправильно и нужные файлы не были скопированы \и зарегистрированы(не все файлы требуют регистрации)
  • Повреждение записей в реестре/файлов программы и т.п.

Собственно из этого вытекают и 2 способа решения:

  • Переустановка программы
  • Если не помогла переустановка, то самостоятельное скачивание нужных файлов и их последующая регистрация

Данная статья написана исключительно на основании личного опыта автора. Все советы, приведенные здесь, Вы выполняете на свой страх и риск. За Ваши действия никто ответственности не несет.

Остановимся подробнее о втором способе решения. Эти файлы могут размещаться в папке \WINDOWS\System32 , либо в папке с программой . Поэтому в окне ошибки смотрим как называется нужный нам файл, находим его в интернете, скачиваем и копируем в обе папки - System32 и папку с приложением . Теперь пришло время регистрации файла(если же она требуется).

Регистрация файлов.dll, .ocx

Вы можете сделать это действие несколькими способами:

  1. Ручная регистрация файлов в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs (НЕ РЕКОМЕНДУЕТСЯ). Для этого в этой ветке создаем параметр REG_DWORD с полным адресом файла, например C:\WINDOWS\System32\MSCOMCTL.OCX и со значением 1 .
  2. Быстрая регистрация. Нажимаем Win+R, в поле вписываем regsvr32 имя_файла, например regsvr32 MFWMAAEC.DLL, и нажимаешь Enter .
  3. Нажимаем Win+R, в поле вписываем cmd. Откроется командая строка. Аналогично предыдущему способу вписываем regsvr32 имя_файла.
  4. Также файлы можно зарегистрировать при помощи утилиты Total Commander .

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

Примечание

Вместе с командой regsvr32 можно дополнительно использовать различные ключи.

regsvr32 ] DLL-файл

/u - отмена регистрации DLL;

/s - «тихий» режим, дополнительные сообщения не отображаются;

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

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

Твик для системы

Позволит добавить в контекстное меню Проводника функции регистрации файлов и ее отмены. Для этого создаем .reg файл (сохраняем через блокнот txt файл и меняем его расширение на .reg. Как включить показ расширений Вы можете прочитать в этой статье - ) следующего содержания:


@="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\""

У вас остались вопросы? Вы хотите дополнить статью? Вы заметили ошибку? Сообщите мне об этом ниже, я обязательно Вас услышу!

При попытке запустить игру или приложение мы можем столкнуться с ошибками вида «точка входа dllregisterserver не найдена» или «запуск приложения невозможен, отсутствует.dll файл». Подобных вариаций может быть несколько, но суть одна: нужных библиотек нет вовсе или они не зарегистрированы. Итак, давайте разберемся, как задействовать библиотеку в операционной системе и что делать, если проблема не решилась.

Описание ошибки

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

Причины возникновения

Причинами появления данной проблемы может быть ряд событий:

  1. Заражение вирусом. Нежелательное ПО способно повредить и удалить библиотеки с компьютера. Для этого стоит проверить машину на вирусы и удалить их с жесткого диска.
  2. Ошибка программы установки. Как правило, поставщик программного обеспечения добавляет все необходимые системные файлы в установочный пакет для работы приложения. Но иногда разработчики забывают об этом. Итог – если на компьютере нет подходящих ресурсов (которые установились с другим приложением), ваша программа не запустится. Гораздо обиднее, если за данный софт вы заплатили круглую сумму.

    Внимание! В некоторых случаях программа установки сама предупреждает о необходимости скачать дополнительный контент для работы приложения. Например, для некоторых игр предлагается установить отдельно DirectX последней версии.

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

Способы регистрации библиотек

Существует два способа добавления.dll файлов в реестр системы.

С помощью командной строки

Для этого потребуется выполнить следующие действия:


С помощью окна «Выполнить»

Способ в два клика:


Почему не получается зарегистрировать.dll и как это исправить?

Существует три причины неудачи при регистрации системных файлов:

  1. Библиотека уже зарегистрирована. В данном случае причина - сам файл, который поврежден или заражен вирусом.
  2. Регистрация невозможна. Файл.dll может просто оказаться пустышкой или быть несовместимым с версией и компонентами операционной системы.

    Внимание! Никогда не скачивайте файлы.dll с файлообменников и прочих подозрительных сайтов. Загружайте библиотеки только с официальных источников!

  3. Функция регистрации отсутствует. Некоторые библиотеки не предназначены для регистрации и попросту не имеют данной функции.

Существует три способа для выхода из сложившегося положения:

  1. Скачайте официальный компонент системы с ресурса поставщика. Например, для файла xlive.dll нужно загрузить и установить пакет Microsoft Games for Windows, который можно скачать на сайте Microsoft.

    Совет! В случае возникновения подобной ситуации ищите где загрузить компонент системы (это будет подлинный сайт), а не отдельный файл.

  2. В случае, если вы разработчик и создали свою библиотеку, зарегистрируйте ее с помощью regasm.exe.
  3. Иногда для задействования.dll файла нужно переместить его в папку с приложением - в директорию, где хранится исполняющий файл.exe.

Итак, мы рассмотрели ряд способов по регистрации библиотек в системе и ликвидации ошибки «точка входа dllregisterserver не найдена». Их должно хватить. Но если у вас уникальная ситуация или известен другой путь решения проблемы – поделитесь, пожалуйста, им в комментариях.