Проверьте что dll является правильным файлом dll или ocx
Summary
Regsvr32 is a command-line utility to register and unregister OLE controls, such as DLLs and ActiveX controls in the Windows Registry. Regsvr32.exe is installed in the %systemroot%\System32 folder in Windows XP and later versions of Windows.
Note On a 64-bit version of Windows operating system, there are two versions of the Regsv32.exe file:
The 64-bit version is %systemroot%\System32\regsvr32.exe.
The 32-bit version is %systemroot%\SysWoW64\regsvr32.exe.
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно "Командная строка".
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
Откройте командную строку с повышенными привилегиями.
Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.
Windows 10 Pro released in July 2015 Windows Vista Enterprise Windows Vista Business Windows Vista Home Basic Windows Vista Home Premium Windows Vista Ultimate Microsoft Windows XP Home Edition Microsoft Windows XP Professional Microsoft Windows XP Tablet PC Edition Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro More. Less
If this article does not describe the error message that you are receiving, you can obtain detailed error message explanations, recommended actions, and additional support resources from the TechNet Events and Errors page.
Видео
Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.
Common solutions for Regsvr32 errors
Try one of the following methods when you receive a Regsvr32 error:
Method 1: Re-run the Regsvr32 command from an elevated command promptTo open an elevated command prompt, following these steps:
Windows 8.1 and Windows 8Swipe in from the right edge of the screen, and then tap Search. Or, if you are using a mouse, point to the lower-right corner of the screen, and then click Search. Type Command Prompt in the Search box, right-click Command Prompt, and then click Run as administrator. If you are prompted for an administrator password or for a confirmation, type the password, or click Allow.
Windows 7 and Windows VistaClick Start, type Command Prompt or cmd in the Search box, right-click Command Prompt, and then click Run as administrator. If you are prompted for an administrator password or for a confirmation, type the password, or click Allow.
Windows XPLog on with an administrator account or an account that has administrator permissions, and then open a Command Prompt window.
Method 2: Use the 32-bit version of Regsvr32 to register a 32-bit DLL on a 64-bit version of WindowsIf you receive an error when registering a 32-bit DLL on a 64-bit version of Windows, follow these steps:
Open an elevated command prompt.
If the 32-bit DLL is in the %systemroot%\System32 folder, move it to the %systemroot%\SysWoW64 folder.
Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.
В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.
Дальнейшие шаги описаны в предположении, что 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.
Сам процесс регистрации в общем случае состоит из следующих шагов:
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i
Почему не удается зарегистрировать DLL
Ошибка при регистрации с помощью regsvr32 вида «Точка входа DllRegisterServer не найдена» говорит о том, что эта библиотека DLL не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:
но с большой вероятностью и это не поможет.
У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.
Что значит точка входа DllRegisterServer не найдена
Файлы библиотек DLL в общем случае представляют собой наборы программных функций, иногда — ресурсов, которые могут быть вызваны из других программ Windows 10 и предыдущих версий.
Когда в командной строке от имени администратора вы вводите команду regsvr32 имя_файла.dll, программа regsvr32.exe ищет и пробует вызвать функцию DllRegisterServer из указанного вами файла DLL для регистрации сервера, не находит её и сообщает об ошибке «Точка входа DllRegisterServer не найдена».
Почему так происходит? Потому что далеко не все DLL содержат такую функцию и не все библиотеки можно установить в системе с помощью regsvr32.exe, а рекомендации использовать команду для регистрации DLL во многих инструкциях вводят в заблуждение и неприменимы.
Для исправления проблемы можно предложить следующие подходы:
- Попробовать использовать ту же команду, но с дополнительными параметрами для установки файла 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 она может не запускаться.
Причины: 64-бит (x64) и 32-бит (x86) версии DLL библиотек и regsvr32.exe
Если у вас Windows 11, Windows 10, 8.1 или Windows 7 x64, при установке файлов DLL следует учитывать следующие несколько моментов:
- Файлы DLL с одним названием могут быть 32-бит и 64-бит, большинство библиотек DLL поставляются разработчиком в двух версиях. Но если вы скачиваете такие файлы со сторонних сайтов в Интернете, разрядность может и не указываться.
- В 64-разрядных системах DLL библиотеки x64 располагаются в папке C:\Windows\System32, а библиотеки x86 (32-бит) — в папке C:\Windows\SysWOW64, хотя из имён папок у начинающего пользователя может сложиться обратное предположение.
- Для исправления ошибок, связанных с отсутствием файлов DLL даже в x64 Windows часто требуются 32-бит файлы DLL, а не 64-бит. Для совместимости и упрощения разработки некоторые игры и программы выпускаются только в варианте x86 и используют соответствующие библиотеки даже в x64 системах.
- В 64-разрядных версиях Windows присутствует два варианта утилиты regsvr32.exe с одним названием файла: одна 64-бит, другая — 32-бит и каждая служит для регистрации файлов DLL соответствующей разрядности.
- Когда вы запускаете regsvr32.exe без указания пути к ней, в x64 системах по умолчанию запускается x64-версия этого инструмента.
- Существуют arm-64 версии библиотек DLL, предназначенные для устройств с ARM-процессорами. Установить их на системах с обычными процессорами Intel или AMD не получится.
В ситуации, когда на вашем компьютере установлена 32-бит (x86) версия Windows, в ней присутствует лишь папка System32 с 32-битными файлами DLL и только 32-битный вариант regsvr32.exe. Использовать x64-версии библиотек DLL в такой Windows не получится.
Здесь мы разобрали все пункты, которые позволят яснее понять, почему выполняются те или иные действия из следующего раздела инструкции об исправлении ошибки.
В случае с 32-разрядной версией Windows всё просто: для исправления ошибки необходимо заменить файл DLL его x86-версией, после чего повторить команду. Если на вашем компьютере установлена Windows 11, 10, 8.1 или Windows 7 x64, используйте следующие шаги:
Пока что речь шла лишь об одной ошибке, текст которой вынесен в заголовок статьи. Думаю, к этому моменту мы с ней справились. Однако, с большой вероятностью, сразу после решения этой проблемы вы столкнётесь с другой, о которой в отдельной инструкции: Модуль загружен, но точка входа DllRegisterServer не найдена.
Windows 10 Pro released in July 2015 Windows Vista Enterprise Windows Vista Business Windows Vista Home Basic Windows Vista Home Premium Windows Vista Ultimate Microsoft Windows XP Home Edition Microsoft Windows XP Professional Microsoft Windows XP Tablet PC Edition Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Ultimate Windows 8 Windows 8 Enterprise Windows 8 Pro Windows 8.1 Windows 8.1 Enterprise Windows 8.1 Pro Еще. Меньше
The syntax of the Regsvr32 command
RegSvr32.exe has the following command-line options:
Regsvr32 [/u] [/n] [/i[:cmdline]]
/u - Unregister server
/i - Call DllInstall passing it an optional [cmdline]; when it is used with /u, it calls dll uninstall
/n - do not call DllRegisterServer; this option must be used with /i
/s – Silent; display no message boxes
Видео инструкция
Также вы можете описать вашу проблему с DLL в комментариях, а я постараюсь подсказать решение.
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%\System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
64-разрядная версия — %systemroot%\System32\regsvr32.exe;
32-разрядная версия — %systemroot%\SysWoW64\regsvr32.exe.
Читайте также: