Почти каждая инструкция в Интернете, касающаяся исправления ошибок DLL, среди шагов содержит предложение скопировать файл в папку System32 или SysWOW64, а затем использовать regsvr32.exe для регистрации этого файла в системе. И в более чем половине случаев пользователи получают сообщение об ошибке «Модуль dll загружен, но точка входа DllRegisterServer не найдена. Проверьте, что файл является правильным файлом DLL или OCX и повторите попытку».
В этой инструкции подробно о причинах ошибки RegSvr32, возможных способах исправить её в Windows 10, 8.1 и Windows 7, а также дополнительная информация, которая может быть полезна, если вам нужно установить отсутствующий файл DLL в системе.
Что значит точка входа DllRegisterServer не найдена
Файлы библиотек DLL в общем случае представляют собой наборы программных функций, иногда — ресурсов, которые могут быть вызваны из других программ Windows 10 и предыдущих версий.
Когда в командной строке от имени администратора вы вводите команду regsvr32 имя_файла.dll , программа regsvr32.exe ищет и пробует вызвать функцию DllRegisterServer из указанного вами файла DLL для регистрации сервера, не находит её и сообщает об ошибке «Точка входа DllRegisterServer не найдена».
Почему так происходит? Потому что далеко не все DLL содержат такую функцию и не все библиотеки можно установить в системе с помощью regsvr32.exe, а рекомендации использовать команду для регистрации DLL во многих инструкциях вводят в заблуждение и неприменимы.
Как исправить ошибку точка входа DllRegisterServer не найдена при регистрации DLL
Для исправления проблемы можно предложить следующие подходы:
- Попробовать использовать ту же команду, но с дополнительными параметрами для установки файла DLL (перед слэшами и именем файла пробелы):
regsvr32 /i /n файл.dll
При использовании этих ключей, поиск процедуры DllRegisterServer выполняться не будет, вместо этого будет использоваться DllInstall. Но и её может не оказаться в файле и это нормально.
- Разобраться, что это за файл DLL и устанавливать его правильно, обычно в составе набора компонентов, содержащих этот файл, при условии, что это требуется. Что имеется в виду? Например, при проблемах с файлами, имена которых начинаются с msvc, как правило требуется установить нужную версию распространяемых компонентов Visual C++ (причем для x64 систем часто нужно устанавливать также и x86 или 32-бит версии), для файлов с именами dx — установить недостающие библиотеки DirectX , используя веб-установщик от Microsoft, а для файлов unarc.dll , ISDone.dll обычно и вовсе не требуется установка каких-либо файлов и дело не в них.
- Иногда может сработать следующий подход: просто копируем файл .dll в ту же папку, где находится файл .exe программы или игры, которая сообщает об ошибке.
- Использовать поиск у меня по сайту, указав имя DLL, из-за которой происходит ошибка: по большинству наиболее часто встречающихся у меня есть подробные инструкции с указанием, какие именно компоненты необходимо установить.
Важный момент по всем пунктам: файлы DLL для x64 и 32-бит (x86) систем отличаются даже при одинаковом имени, при этом даже в 64-бит Windows 10, 8.1 или Windows 7 для работы какой-то программы может требоваться DLL для 32-бит, а с DLL для x64 она может не запускаться.
Видео инструкция
Также вы можете описать вашу проблему с DLL в комментариях, а я постараюсь подсказать решение.