Чтобы зарегистрировать DLL-файл в Windows, запустите встроенное средство Regsvr32 из командной строки с повышенными правами и используйте версию, соответствующую архитектуре DLL. Это применимо только к подходящим саморегистрирующимся COM DLL. Regsvr32 не является универсальным средством восстановления DLL. Если Windows сообщает об отсутствии DLL Visual C++, DirectX или обычного приложения, восстановите либо переустановите затронутое ПО. В этом руководстве описаны прямая регистрация, повторная регистрация ранее зарегистрированного COM-компонента и отдельный путь диагностики для более широкого круга проблем с DLL.

Когда следует регистрировать DLL?

Ситуация Следует использовать Regsvr32?
Разработчик ПО прямо требует зарегистрировать COM DLL Да
В документации DLL указана поддержка саморегистрации Да
DLL не найдена Обычно нет
Отсутствует DLL Visual C++ или DirectX Нет
Файл является обычной DLL-зависимостью приложения Необязательно; он может не поддерживать регистрацию
Вы не знаете назначение DLL или наличие поддержки регистрации Сначала уточните её источник и предполагаемое назначение

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

Краткое сравнение методов

Метод Лучше всего подходит для Эффективность Усилия пользователя
Регистрация через Regsvr32 Известной саморегистрирующейся COM DLL, которую нужно зарегистрировать Высокая Средние
Повторная регистрация COM DLL Ранее зарегистрированного компонента с предполагаемой устаревшей регистрацией Средняя Средние
Диагностика с Fionn DLL Fixer Симптомов отсутствующих, повреждённых, несовместимых DLL или проблем, связанных с системным путём Зависит от обнаруженной проблемы Низкие

Метод 1. Регистрация DLL с помощью Regsvr32

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

  1. Откройте меню «Пуск», найдите Командную строку и выберите Запуск от имени администратора .
    Запуск от имени администратора
  2. Выберите средство регистрации, соответствующее DLL, а не только установленной Windows. В 64-разрядной Windows используйте C:\Windows\System32\regsvr32.exe для 64-разрядной DLL и C:\Windows\SysWOW64\regsvr32.exe для 32-разрядной DLL.
  3. Выполните подходящую команду, заменив пример полным путём к DLL.
    C:\Windows\System32\regsvr32.exe "C:\Path\To\Example.dll"
          

    Для 32-разрядной DLL в 64-разрядной Windows используйте:

    C:\Windows\SysWOW64\regsvr32.exe "C:\Path\To\Example.dll"
          
  4. Убедитесь, что результат содержит сообщение DllRegisterServer succeeded , затем снова откройте затронутое приложение и проверьте функцию, использующую этот компонент.

Метод 2. Повторная регистрация ранее зарегистрированной COM DLL

Когда использовать: Используйте этот способ только для саморегистрирующегося COM-компонента, который уже был зарегистрирован и может иметь неверную или устаревшую регистрацию. Это не следующий шаг по умолчанию, если метод 1 не сработал.

  1. Откройте командную строку от имени администратора и выберите 32- или 64-разрядный исполняемый файл Regsvr32, соответствующий DLL.
  2. Отмените регистрацию известного компонента, добавив /u в соответствующую команду Regsvr32.
    regsvr32 /u "C:\Path\To\Example.dll"
          
    Командная строка с Regsvr32
  3. Снова зарегистрируйте ту же DLL подходящим исполняемым файлом без параметра /u .
    regsvr32 "C:\Path\To\Example.dll"
          
  4. Перезапустите затронутое приложение и повторите действие, которое ранее вызывало ошибку, связанную с регистрацией.

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

Метод 3. Диагностика и устранение проблем с DLL с помощью Fionn DLL Fixer

Когда использовать: Этот отдельный метод подходит для проблем с отсутствующими, повреждёнными, несовместимыми по версии DLL или DLL, связанными с путём System32. Он не заменяет регистрацию COM-компонентов через Regsvr32, предписанную разработчиком.

  1. Запустите Fionn DLL Fixer. Программа сканирует ПК на наличие проблем с DLL и системой и отображает найденные результаты после завершения проверки. Запуск Fionn DLL Fixer
  2. После завершения сканирования нажмите Repair , чтобы начать устранение всех обнаруженных проблем с DLL и системой. После завершения сканирования нажмите «Repair», чтобы автоматически начать устранение всех обнаруженных проблем с DLL и системой
  3. Дождитесь завершения восстановления. Кнопка изменится на Fixing до устранения обнаруженных проблем. Дождитесь выполнения восстановления
  4. После завершения восстановления нажмите Ok в диалоговом окне подтверждения. Перезапустите компьютер, если появится соответствующий запрос, прежде чем проверять результат. После завершения восстановления нажмите «Ok» в диалоговом окне подтверждения
  5. Если проблема сохраняется после перезапуска, нажмите Recheck , чтобы выполнить повторное сканирование. При обнаружении новых проблем снова нажмите Repair . Если проблема остаётся после перезапуска, нажмите «Recheck», чтобы выполнить повторное сканирование

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

Распространённые ошибки Regsvr32 и их значение

Сообщение Regsvr32 Значение и следующий шаг
DllRegisterServer succeeded Регистрация выполнена успешно. Проверьте затронутую функцию.
DllRegisterServer was not found DLL может не поддерживать саморегистрацию. Ознакомьтесь с инструкциями разработчика.
The module failed to load Проверьте путь, зависимые модули и соответствие 32- или 64-разрядной архитектуры.
The specified module could not be found Целевая DLL может существовать, но одну из её зависимостей не удаётся загрузить.
0x80070005 Это часто указывает на проблему с отказом в доступе. Запустите командную строку с повышенными правами и убедитесь, что у вас есть разрешение на использование компонента.

Сведения о параметрах команд и терминологии Microsoft приведены в справочнике Microsoft по Regsvr32 . Не пытайтесь многократно регистрировать несвязанные DLL, если отсутствует точка входа.

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

Заключение

Сначала убедитесь, что DLL является саморегистрирующимся COM-компонентом, указанным разработчиком. Затем запустите исполняемый файл Regsvr32, соответствующий архитектуре DLL, подтвердите сообщение об успехе и проверьте затронутое приложение. Повторно регистрируйте только компонент, который уже был зарегистрирован и, как известно, поддерживает отмену регистрации. При симптомах отсутствующей, повреждённой, несовместимой по версии DLL или проблемах с зависимостями Fionn DLL Fixer предлагает отдельный процесс сканирования, восстановления и повторной проверки. Если ошибка не исчезает, используйте полный текст сообщения и инструкции разработчика ПО по восстановлению, чтобы определить следующий шаг.

Часто задаваемые вопросы

Можно ли зарегистрировать любой DLL-файл?

Нет. Regsvr32 предназначен для саморегистрирующихся COM DLL, которые предоставляют необходимую точку входа регистрации. Многие обычные DLL этого не делают.

Какую версию Regsvr32 использовать в 64-разрядной Windows: 32- или 64-разрядную?

Выбирайте версию, соответствующую DLL. Используйте System32 для 64-разрядных DLL и SysWOW64 для 32-разрядных DLL.

Почему Regsvr32 сообщает, что указанный модуль не найден, хотя DLL присутствует?

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

Следует ли регистрировать DLL, чтобы устранить отсутствие DLL Visual C++ или DirectX?

Нет. Такие ошибки обычно требуют установщика затронутого приложения, его функции восстановления или установки поддерживаемой среды выполнения, а не регистрации COM-компонента.

Нужно ли перезапускать Windows после регистрации DLL?

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