Open
Close

Не удается зарегистрировать модуль. Windows Регистрация файлов с расширением *.dll и *.ocx. Несколько способов регистрации динамической библиотеки

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

Модель многокомпонентных объектов (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 в операционной системе Windows. DLL – это динамические библиотеки, обращение к которым многократно может идти от нескольких приложений. Если при попытке обращения со стороны игры или программы к определенной библиотеке DLL возникла ошибка, пользователь увидит сообщение «точка входа dllregisterserver не найдена» или «запуск невозможен, отсутствует.dll файл». Эти и другие ошибки, сообщающие о проблемах при обращении к динамической библиотеке, можно устранить, если самостоятельно зарегистрировать нужный файл DLL в Windows.

Почему возникает ошибка при обращении к DLL

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

  • DLL библиотека не была установлена. Причин этому может быть две – Windows не обновлен до актуальной версии, а библиотека поставляется с одним из последних обновлений, или игра/приложение при установке по некоторым причинам не произвела инсталляцию и регистрацию новых библиотек DLL.
    Обратите внимание: Чаще всего в установочные файлы приложения включены все необходимые библиотеки DLL, и разработчики не надеются, что на компьютере уже ранее были установлены необходимые компоненты.
  • Повреждение библиотек DLL. Данная проблема чаще всего возникает, если библиотеки DLL были повреждены вирусным программным обеспечением или неосторожными действиями пользователя, например, внесением изменений в реестр, которые привели к повреждению динамических библиотек.

Большая часть библиотек DLL устанавливается на компьютер вместе с DirectX, поэтому если при установке игры или приложения возникает предложение обновить/установить DirectX, от него не нужно отказываться, иначе велик риск появления ошибки «запуск невозможен, отсутствует.dll файл».

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

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

Регистрация DLL с помощью командной строки

Чтобы зарегистрировать имеющуюся на компьютере библиотеку DLL через командную строку, проделайте следующие действия:


Регистрация DLL с помощью строки «Выполнить»

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


Что делать, если не удается зарегистрировать библиотеку DLL

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

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

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

Ознакомьтесь с принципом работы этого метода. Чтобы зарегистрировать DLL-файл, можно использовать команду «regsvr» и имя DLL-файла (если файл поддерживает эту команду). Будет создан путь от реестра Windows к DLL-файлу, что упростит системе поиск и использование файла.

  • Как правило, этим методом пользуются для регистрации DLL-файлов, которые относятся к сторонним программ и которые напрямую взаимодействуют с системными утилитами (например, с командной строкой).

Уясните суть ошибки «entry point» (точка входа). Если DLL-файл уже зарегистрирован, он не поддерживает команду «regsvr» или его код не позволяет подключиться к реестру Windows, вы получите сообщение об ошибке «The module was loaded but the entry point DllRegisterServer was not found» (Модуль [имя DLL файла] загружен, но точка входа DllRegisterServer не найдена). Если на экране отобразилось такое сообщение, вы не сможете зарегистрировать DLL-файл.

  • Ошибка «точки входа» - это не столько проблема, сколько подтверждение того, что DLL-файл регистрировать не нужно.
  • Найдите DLL-файл, который вы хотите зарегистрировать. Перейдите в папку с нужным DLL-файлом и найдите его.

    • Если DLL-файл относится к установленной программе, откройте папку с этой программой (например, C:\Program Files\[имя программы]).
  • Откройте свойства DLL-файла. Щелкните правой кнопкой мыши по DLL-файлу и в меню выберите «Свойства». Откроется всплывающее окно.

    Найдите имя DLL-файла. В текстовом поле в верхней части окна «Свойства» вы найдете полное имя файла.

    • У большинства DLL-файлов сложные имена, поэтому оставьте окно «Свойства» открытым, чтобы скопировать имя позже.
  • Скопируйте путь к DLL-файлу. Удерживайте левую кнопку мыши и проведите указателем вдоль текста, который отображается в строке «Расположение», а затем нажмите Ctrl + C , чтобы скопировать путь к DLL-файлу.

    Найдите командную строку. Введите командная строка в строке поиска меню «Пуск». Значок командной строки отобразится в верхней части меню «Пуск».

    Откройте командную строку как администратор. Для этого:

  • Перейдите в каталог с DLL-файлом. Введите cd , нажмите на пробел, нажмите Ctrl + V , чтобы вставить путь к DLL-файлу, а затем нажмите ↵ Enter .

    • Например, если DLL-файл находится в папке «SysWOW64», которая расположена в папке «Windows», команда будет выглядеть так: cd C:\Windows\SysWOW64
  • Введите команду «regsvr» и имя DLL-файла. Введите regsvr32 , нажмите на пробел, введите имя DLL-файла (вместе с расширением.dll) и нажмите ↵ Enter . Если DLL-файл можно зарегистрировать, на экране появится подтверждение регистрации.

    • Например, если имя DLL-файла «usbperf.dll», команда будет выглядеть так: regsvr32 usbperf.dll
    • Чтобы скопировать имя DLL-файла, повторно откройте папку с DLL-файлом (откроется окно «Свойства»), выделите имя файла и нажмите Ctrl + C . Затем вставьте имя в командную строку - для этого нажмите Ctrl + V .
    • Если DLL-файл уже зарегистрирован или не может быть зарегистрирован, отобразится ошибка «точки входа», а не подтверждение регистрации.
  • Пользователи спрашивают о том, как зарегистрировать dll файл в Windows 7 и 8. Обычно после того, как столкнулись с ошибками наподобие «Запуск программы невозможен, так как нужная dll отсутствует на компьютере». Об этом и поговорим.

    На самом деле, регистрация библиотеки в системе не такая уж и сложная задача (покажу целых три вариации одного способа) - по сути, необходим лишь один шаг. Единственное обязательное требование - наличие у вас прав администратора Windows.

    Однако есть некоторые нюансы - например, даже успешная регистрация DLL не обязательно избавляет вас от ошибки «библиотека отсутствует на компьютере», а появление ошибки RegSvr32 с сообщением о том, что модуль не совместим с версией Windows на этом компьютере или точка входа DLLRegisterServer не найдена, не говорит о том, что вы что-то делаете не так (о чем это говорит разъясню в конце статьи).

    Три способа регистрации DLL в ОС

    Описывая дальнейшие шаги, я исхожу из того, что вы нашли, куда нужно скопировать вашу библиотеку и DLL уже лежит в папку System32 или SysWOW64 (а возможно, где-то еще, если ей там следует находиться).

    Примечание: ниже будет описано, как зарегистрировать DLL библиотеку с помощью regsvr32.exe, однако обращаю ваше внимание на то, что если у вас 64-разрядная система, то у вас есть два regsvr32.exe - один в папке C:\Windows \SysWOW64, второй - C:\Windows\System32. И это разные файлы, причем 64-бит находится в папке System32. Рекомендую в каждом из способов использовать полный путь к regsvr32.exe, а не просто имя файла, как у меня показано в примерах.

    Первый способ описывается в Интернете чаще других и состоит в следующем:

      Нажмите клавиши Windows + R или в меню Пуск Windows 7 выберите пункт «Выполнить» (если, конечно, у вас включено его отображение).Введите regsvr32.exe путь_к_файлу_dllНажмите Ок или Enter.

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

    Второй способ состоит в запуске командной строки от имени администратора и ввода все той же команды из предыдущего пункта.

      Запустите командную строку от имени Администратора. В Windows 8 можно нажать клавиши Win+X, а затем выбрать нужный пункт меню. В Windows 7 вы можете найти командную строку в меню Пуск, кликнуть по ней правой кнопкой мыши и выбрать пункт «Запуск от имени администратора».Введите команду regsvr32.exe путь_к_библиотеке_dll (пример вы можете видеть на скриншоте).

    Опять же, вероятно, что вам не удастся зарегистрировать DLL в системе.

    И последний способ, который также может пригодиться в некоторых случаях:

      Кликните правой кнопкой мыши по DLL, которую нужно зарегистрировать и выберите пункт меню «Открыть с помощью».Нажмите «Обзор» и найдите файл regsvr32.exe в папке Windows/System32 или Windows/SysWow64, откройте DLL с помощью него.

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

    Почему не удается зарегистрировать DLL

    Responsive2{width:300px;height:300px}@media(min-width: 500px){.responsive2{width:336px;height:280px}}

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

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

    А теперь о том, как это исправить:

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

    На этом завершаю, надеюсь, что-то стало более ясно, чем было.