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

Как зарегистрировать DLL в Windows 10 и Windows 11Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.

В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.

Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы

Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:\Windows\System32, C:\Windows\SysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:\Program Files\1cv8\номер_версии\bin (или Program Files x86 в случае 32-битной версии).

Прежде чем приступить к регистрации библиотеки, учитывайте следующие моменты:

  • В x64 версиях Windows 64-битные DLL хранятся в System32, а 32-битные — в SysWOW64 (у некоторых начинающих пользователей бывает обратное предположение исходя из имён папок).
  • Файлы DLL x64 и x86 (32-бит) — это разные файлы. И если прямого указания на разрядность в месте загрузки файла нет, то чаще это 32-битный файл (что не мешает ему работать в x64 системе), но это не всегда так.
  • Для регистрации библиотеки DLL используется системный инструмент regsvr32.exe, который также доступен в двух версиях, которые лежат в папках System32 и SysWOW64 (в случае 64-битных систем). По умолчанию при описываемых далее действиях запускается x64 версия.
  • 32-битным программам и играм (по умолчанию устанавливаются в Program Files x86 в 32-битных системах) для работы нужны 32-битные DLL, не зависимо от разрядности Windows.

Сам процесс регистрации в общем случае состоит из следующих шагов:

  1. Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
  2. Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:
    regsvr32.exe "C:\Program Files\1cv8\8.3.19.1150\bin\comcntr.dll"
    Если DLL находится в System32, полный путь указывать не обязательно, достаточно простого имени файла, как на изображении ниже. Регистрация библиотеки DLL с помощью regsvr32
  3. Нажмите Ок или Enter.
  4. При успехе вы получите сообщение вида «Успешное выполнение DllRegisterServer в имя_файла.dll» или «Успешное выполнение DllRegisterServer и DllInstall в имя_файла.dll». Успешная регистрация библиотеки DLL

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

Ошибка регистрации regsvr32 точка входа DllRegisterServer не найдена

Дополнительно: для регистрации классов из библиотек DLL .NET Framework в COM с созданием необходимых записей в реестре используется regasm.exe из .NET SDK, причем базовая команда регистрации DLL выглядит тем же образом, что и в случае с regsvr32.exe. Подробнее по использованию regasm — https://docs.microsoft.com/ru-ru/dotnet/framework/tools/regasm-exe-assembly-registration-tool.

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

Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:

regsvr32 /i /n путь_к_файлу.dll
но с большой вероятностью и это не поможет.

У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.

Видео

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

Комментарии (65) к Как зарегистрировать DLL в Windows

  • Даниил

    Здравствуйте. Скачал из Стима игру, и столкнулся с ошибкой, связана она с файлом msvcrt. dll. Попробовал все указанные вами способами, а после попробовал установить Microsoft C++, но это все равно не помогло. Что мне делать?

    Ответить

    • Dmitry

      А установили и X86 и X64 версии (нужны обе). Нужного года?

      Ответить

      • Карина

        Здравствуйте, подскажите пожалуйста. Переименовываю папку пользователя, для этого изменению значения в файлах реестра и всё идёт хорошо, НО. На файле installer dlls нельзя изменить значение, пишет : «ошибка при записи нового значения параметра».
        Что делать в данном случае?

        Ответить

        • Dmitry

          Здравствуйте.
          Карина, вообще, я хоть и могу рассказать, как стать владельцем раздела реестра, не рекомендовал бы заниматься ручным переименованием папки пользователя (может плохо закончиться). Просто создайте нового пользователя с нужным именем (локального, а не с учетной записью Майкрософт) и у него будет папка соответствующая, потом переедете под него.
          Что касается переименовывания, делается вот так https://remontka.pro/take-registry-hive-ownership-windows/

          Ответить

  • Вадим

    Статья толковая. Но мне не помогло. Была проблема с файлом расширения .ocx операционка Windows 7 максимальная. И никак не регистрировался ну соответственно приложение не работало ошибка 339: «Run-time error 339». При регистрации: файл не найден проверьте его наличие или связанных DLL. Как полечил? Нашёл файл в папке с помощью Total Commander C:\Windows\SysWOW64\Codejock.SyntaxEdit.v13.2.1.ocx
    Правой кнопкой мыши «Просмотр (Lister)»
    После того как открылся просмотр перешёл на вкладку Dll Dependency.
    Отсутствующая Dll отмечена красным восклицательным знаком.
    Скачал с интернета.
    Подкинул в C:\Windows\SysWOW64.
    Регистрировал первым способом.
    И всё заработало.

    Ответить

  • Cthulhu

    собственно иногда требуется регистрировать 32-разрядные библиотеки для 64-разрядных программ — тогда еще нужно зарегистрированную длл-ку в COM+ «обертку» заворачивать.

    Ответить

  • Дедушка Валера

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

    Ответить

  • Игорь

    Только не

    regsvr32.exe C:\Program Files\1cv8\8.3.19.1150\bin\comcntr.dll

    А правильно

    regsvr32.exe "C:\Program Files\1cv8\8.3.19.1150\bin\comcntr.dll"

    т.е. с кавычками.. тогда работает

    Ответить

    • Dmitry

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

      Ответить

  • Денис

    картинки отклеились

    Ответить

    • Dmitry

      Не совсем понял, вроде всё на месте и отображается.

      Ответить

Оставить комментарий

Интересное
Список инструкций Windows 11 Windows 10 Подписаться