Содержание
- REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.
- Примеры использования regsvr32.exe :
- Проверить регистрацию библиотеки
- Как зарегистрировать DLL библиотеки (x32-64 bit) в Windows 10/7
- Отмена и повторная регистрация DLL библиотеки
- Регистрация DLL библиотеки
- Отменить регистрацию файла DLL
- Перерегистрировать все файлы dll
- Регистрация 32-битной DLL в 64-битной ОС
- Что нужно учесть?
REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.
Модель многокомпонентных объектов ( C omponent O bject M odel — СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:
HKLMSOFTWAREClassesCLSID — при регистрации COM-объектов библиотек для всех пользователей системы;
HKCUSOFTWAREClassesCLSID — при регистрации COM-объектов библиотек только лишь для текущего пользователя;
HKLMSOFTWAREWow6432NodeClassesCLSID — для регистрации 32-битных DLL в 64-битных ОС Windows;
При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:
При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe , имеющейся во всех версиях операционных систем семейства Windows .
Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :
— 64-разрядная версия в каталоге %systemroot%System32 (обычно — C:WindowsSystem32)
— 32-разрядная версия в каталоге %systemroot%SysWoW64 (обычно – C:WindowsSysWoW64)
Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).
При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:
Формат командной строки REGSVR32:
Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
/u — — вызывает DllUnInstall, отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;
/n — не вызывает DllRegisterServer; может использоваться с ключом /I;
/s – «тихий» режим; окна сообщений не отображаются;
Примеры использования regsvr32.exe :
regsvr32 /u «C:Program Files7-Zip7-zip32.dll» — отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:
Для подавления вывода сообщения, используется параметр /s :
regsvr32 /u /s «C:Program Files7-Zip7-zip.dll»
В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:
regsvr32 «C:Program Files7-Zip7-zip.dll»
Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :
Или без использования переменных окружения:
В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:
— Получить в удобном виде список всех зарегистрированных в системе объектов.
— Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.
— Выполнить регистрацию или отмену регистрации выбранных объектов.
— Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.
— Зарегистрировать или перерегистрировать указанный файл.
Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.
Проверить регистрацию библиотеки
Все новые темы
Автор | |||
---|---|---|---|
netman2008 Новичок Зарегистрирован: 18.02.2008
|
|
||
Вернуться к началу |
|
||
Зарегистрируйтесь и реклама исчезнет!
|
|||
aleksiom Активный участник Зарегистрирован: 28.07.2005
|
|
||
Вернуться к началу |
|
||
netman2008 Новичок Зарегистрирован: 18.02.2008
|
|
||
Вернуться к началу |
|
||
aleksiom Активный участник Зарегистрирован: 28.07.2005
|
|
||
Вернуться к началу |
|
||
netman2008 Новичок Зарегистрирован: 18.02.2008
|
|
||
Вернуться к началу |
|
||
aleksiom Активный участник Зарегистрирован: 28.07.2005 Как зарегистрировать DLL библиотеки (x32-64 bit) в Windows 10/7Когда пользователь запускает игры или программы, то может столкнуться с ошибкой, что не удалось запустить программу, так как на компьютере отсутствует DLL файл. В большинстве случаях, регистрация указанного DLL файла может устранить данную ошибку. Также, иногда бывают моменты, когда библиотеку нужно перезарегистрировать заново, т.е. отменить текущую регистрацию и заново зарегистрировать. Воспользуемся инструментом Regsvr32 командной строки, который регистрирует и отменяет регистрацию DLL библиотек и ActiveX (OCX) в Windows 10/8.1/7. Отмена и повторная регистрация DLL библиотекиПуть к DLL библиотеке можно скопировать, чтобы не писать его вручную в командой строке. Для этого, зажмите левый Shift и нажмите правой кнопкой мыши по DLL фалу, после чего «Копировать как путь«. Наберите в поиске «Командная строка» и нажмите по ней правой кнопкой мыши, после чего выберите «Запустить от имени администратора» и вводите ниже команды, которые вам необходимы. Регистрация DLL библиотекиВ командную строку введите следующую команду, чтобы зарегистрировать DLL библиотеку в системе Windows. Отменить регистрацию файла DLLЧтобы отменить текущую регистрацию DLL файла, введите ниже команду и нажмите Enter: Перерегистрировать все файлы dllЧтобы зарегистрировать все файлы dll в системе Windows, то: Регистрация 32-битной DLL в 64-битной ОСЕсли вы получаете сообщение об ошибке при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии Windows, выполните следующие действия:
или Что нужно учесть?1. В 64-разрядной версии операционной системы Windows существует две версии файла Regsv32.exe:
2. В 64-разрядной версии Windows, 32-разрядные файлы DLL всегда находятся в папке WindowsSysWOW64. В то время как 64-битные библиотеки DLL находятся в папке WindowsSystem32. В 32-битной версии Windows, файлы DLL находятся только в папке WindowsSystem32. Здесь не будет папки SysWOW64. 3. Если вы получаете ошибки, такие как DllRegisterServer, модуль несовместим с версией Windows или точка входа не найдена, то знайте:
Как исправить?
4. Отключите на время контроль учетных записей ( UAC ) во время регистрации DLL, так как он может мешать процессу. Adblock |
Опубликовано 28.09.2022
Содержание:
- 1 Библиотека DLL Windows
- 2 Как найти и установить библиотеку DLL
- 2.1 Регистрация dll-файла через командную строку
- 3 Как установить библиотеку DLL сторонними инструментами
- 3.1 DLL Helper
- 3.2 Advanced PC Cleanup
- 3.3 CCleaner
- 3.4 Advanced System Optimizer
- 4 Точка входа не найдена в библиотеке dll
- 5 Заключение
Библиотека DLL Windows
Файлы библиотек DLL использует почти все программное обеспечение, установленное на компьютере. Пользователь не замечает наличие этих элементов, пока все работает нормально. Их отсутствие становится ярко заметно, когда система сообщает об ошибке DLL. Она возникает из-за того, что нужный компонент отсутствует, устарел или поврежден. Для полноценного функционирования программ в библиотеке должны быть все нужные файлы, причем подписанные цифровой подписью, актуальные и корректно работающие.
Решить проблему с отсутствием dll достаточно просто — необходимо скачать подходящую библиотеку, разместить ее в правильной папке и зарегистрировать в Windows. Рассмотрим алгоритм действий.
Как найти и установить библиотеку DLL
Инсталляция и регистрация библиотеки производится согласно единому алгоритму вне зависимости от версии операционной системы. Перед скачиванием файлов необходимо определить разрядность Windows. Кликаем в Проводнике на «Этот компьютер» и выбираем «Свойства». К примеру, на скриншоте 64-разрядная Windows 10 Pro.
Скачиваем подходящие файлы, а затем перемещаем их в корневую папку. Для 32-разрядной ОС (x32) это директория C:WindowsSystem32, для 64-разрядной (x64) — C:Windows SysWOW64. Теперь библиотеки необходимо зарегистрировать в ОС. Используем для этого win+r, и в открывшейся строке введем regsvr32 имяфайла.dll.
Команда regsvr32 зарегистрирует элемент библиотеки имяфайла.dll. Подтверждаем OK, перезагружаем компьютер и продолжаем работу. Ошибка должна исчезнуть.
Регистрация dll-файла через командную строку
Запускаем командную консоль с админскими правами. Вводим regsvr32.exe C:/Windows/System32/имяфайла.dll и кликаем «Энтер».
Обязательно делаем перезагрузку компьютера.
Если после этого система сообщает, что не удается загрузить модуль, проверьте, правильно ли прописан путь к файлу, и лежит ли он в упомянутой выше корневой папке. Также dll-элемент может быть уже ранее зарегистрирован. Скачанные файлы сохраняйте в отдельной папке, возможно, они еще пригодятся. Используйте только актуальные библиотеки.
Если вдруг приложение либо игра не видит элемент dll, необходимо скопировать последний и вставить в директорию, где находится основной исполняемый exe-файл. После этого заново запускаем программу.
Как установить библиотеку DLL сторонними инструментами
Установить и зарегистрировать системные DLL возможно с помощью различных приложений, о которых речь пойдет ниже. Они способны автоматически найти недостающие библиотеки, проанализировать состояние ОС, проверить целостность реестра и создать резервные копии. При этом компоненты, связанные с .NET Framework, Visual C++ и DirectX, нужно скачивать с официальных сайтов, а конкретные ошибки в отдельных программах лучше решать с разработчиками проблемного ПО.
DLL Helper
DLL Helper — платный софт на русском языке. Обладает простым понятным интерфейсом и внушительным онлайн-хранилищем DLL-библиотек. Легко устанавливается. Для поиска нужных элементов достаточно знать их официальные наименования, данные им производителем. Программа работает в двух режимах: «Простой» (предлагает только актуальные версии) и «Продвинутый» (предлагает все доступные версии). Существует возможность отката ранее установленных DLL.
Advanced PC Cleanup
Advanced PC Cleanup позволяет удалить временные элементы, зарегистрировать недостающие dll-файлы, исправить другие проблемы. Программа быстро обнаруживает отсутствующие библиотеки и предлагает исправить записи в реестре, отображая весь перечень проблемных файлов, откуда пользователь может сам выбрать компоненты для восстановления. ПО работает на английском языке, в бесплатном варианте и премиум-версии.
CCleaner
CCleaner проверяет наличие в системе элементов, способных снизить ее быстродействие. Обладает простым интерфейсом и позволяет во вкладках одного окна совершить множество действий по оптимизации работы компьютера. Программа сканирует реестр и среди других ошибок обнаруживает недостающие либо поврежденные записи о библиотеках. Поскольку CCleaner обладает обширным инструментарием, а не занимается исключительно dll-файлами, то проблемы с этими элементами не всегда удается успешно разрешить. Утилита работает на русском языке, обладает пробной и премиум-версией.
Advanced System Optimizer
Advanced System Optimizer выполняет те же функции, что и CCleaner. Запустив проверку реестра, пользователь получает перечень поврежденных файлов, среди которых есть и недостающие либо незарегистрированные dll-библиотеки. Можно сразу провести восстановление и избавиться от возникших проблем. Работает на русском языке и в бесплатном функционале позволяет выполнить поиск и исправление dll.
Есть и такие программы, как SpeedyPC Pro, SS Registry Fixer и т. д. Работают на русском и английском языках, являются бесплатными и условно-бесплатными, специализированными и общими утилитами. В последних главное — наличие функции исправления ошибок реестра, которая поможет найти и восстановить dll-библиотеки.
Точка входа не найдена в библиотеке dll
Иногда во время запуска программы либо игры компьютер выдает ошибку «Точка входа в процедуру не найдена в библиотеке DLL». Это означает, что нужный dll-файл не найден, поврежден или содержит ошибку в синтаксисе. Windows способна автоматически заменить отсутствующие или поврежденные системные элементы. Во всех остальных случаях решить проблему помогут нижеприведенные рекомендации.
- Скачайте и установите актуальную версию Visual C++ с официального сайта Microsoft. Запустите на своем компьютере обе вариации — и для 32-, и для 64-битной ОС.
- В командной строке с админскими правами используйте sfc /scannow. После ввода команды нажмите «Энтер». По окончании проверки системных файлов утилита сообщит о файлах, которые удалось либо не удалось восстановить.
- Возможно, ситуацию исправит переустановка проблемного софта.
- Перерегистрируйте dll-файл, открыв командную строку с админскими правами и используя команды «regsvr32/u a имяфайла.dll» и «regsvr32 a имя файла.dll» (без кавычек). После каждой команды щелкните «Энтер».
- Откатите операционную систему назад с помощью win+r и команды rstrui.exe. Кликните OK, выберите нужную точку восстановления и запустите процесс. После перезагрузки система будет работать по состоянию на указанную дату.
Продвинутым пользователям, самостоятельно устанавливающим Windows, можно рекомендовать инструмент Media Creation Tool. Он решит ошибку, когда система сообщит, что точка процедуры не найдена в библиотеке dll. С помощью этой утилиты необходимо создать загрузочный образ «Виндовс» на сайте Microsoft и произвести инсталляцию ОС с установочной флешки. Этот способ поможет извлечь и применить недостающие dll-файлы.
Заключение
Если, несмотря на предложенные инструкции, вам не удалось найти и зарегистрировать недостающие или поврежденные dll-библиотеки, обратитесь к сотрудникам «АйТиСпектр». Специалисты наладят работу операционной системы, а заодно помогут решить проблемы с работой других компонентов компьютера.
Когда вы регистрируете DLL на старых машинах (Windows XP), regsrv всегда говорит, что регистрация прошла успешно. Это происходит, даже если пользователь не имеет разрешения на регистрацию.
С именем dll, есть ли команда, которую я могу запустить в командной строке, чтобы проверить, установлена ли DLL?
Учитывая, что регистрация DLL может включать в себя произвольные операции, не существует универсального способа определить, была ли регистрация для произвольной DLL.
Чтобы определить, была ли DLL-библиотека зарегистрирована, вам необходимо предоставить знания, относящиеся к конкретной области. Если вы знаете, что DLL регистрирует COM-объект с определенным CLSID, вы можете проверить, действительно ли этот CLSID зарегистрирован.
ОК, это невозможно, но DLL обычно регистрируют себя, создавая запись в реестре. Обходной путь должен:
- Сначала вы должны обнаружить COM GUID библиотеки DLL. Если у вас есть один компьютер, на котором он уже зарегистрирован, вы можете:
- Откройте regedit и найдите свое имя файла DLL
- Если оно зарегистрировано, вы найдете имя файла под ключом, который находится под TypeLib. Ключ будет выглядеть так:
Лучший ответ позволил бы мне найти GUID непосредственно из файла до его регистрации. По крайней мере, таким образом вы можете создать скрипт для установки и проверить, был ли он успешно установлен.
Использование средства Regsvr32 и устранение неполадок, связанных с выводимыми им сообщениями об ошибках
Если вы получили сообщение об ошибке, описания которого нет в этой статье, можно найти его подробное объяснение, рекомендуемые действия и список дополнительных ресурсов поддержки на странице ошибок и событий TechNet.
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
64-разрядная версия — %systemroot%System32regsvr32.exe;
32-разрядная версия — %systemroot%SysWoW64regsvr32.exe.
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i/s – «тихий» режим; окна сообщений не отображаются
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows 7 и Windows VistaНажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно «Командная строка».
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
Откройте командную строку с повышенными привилегиями.
Если 32-разрядная библиотека DLL находится в папке %systemroot%System32, переместите ее в папку %systemroot%SysWoW64.
Как зарегистрировать DLL в Windows
Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.
В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.
Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы
Дальнейшие шаги описаны в предположении, что DLL, которую нужно зарегистрировать, уже находится в нужном расположении: папке C:WindowsSystem32, C:WindowsSysWOW64 или, в некоторых случаях — отдельных папках программ, к которой относится соответствующая библиотека, например, для 1С — C:Program Files1cv8номер_версии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.
Сам процесс регистрации в общем случае состоит из следующих шагов:
- Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
- Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:Если DLL находится в System32, полный путь указывать не обязательно, достаточно простого имени файла, как на изображении ниже.
- Нажмите Ок или Enter.
- При успехе вы получите сообщение вида «Успешное выполнение DllRegisterServer в имя_файла.dll» или «Успешное выполнение DllRegisterServer и DllInstall в имя_файла.dll».
Возможна и неудача — сообщение об ошибке «Модуль dll загружен, но точка входа DllRegisterServer не найдена. Проверьте, что файл является правильным файлом DLL или OCX и повторите попытку». Подробнее об ошибке — в следующем разделе статьи.
Дополнительно: для регистрации классов из библиотек 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 не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:
но с большой вероятностью и это не поможет.
У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.
Видео
Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.
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 Еще…Меньше
Если вы получили сообщение об ошибке, описания которого нет в этой статье, можно найти его подробное объяснение, рекомендуемые действия и список дополнительных ресурсов поддержки на странице ошибок и событий TechNet.
Аннотация
Regsvr32 — это служебная программа командной строки для регистрации и отмены регистрации элементов управления OLE, например ActiveX и библиотеки DLL в реестре Windows. Средство Regsvr32.exe установлено в папке %systemroot%System32 в ОС Windows XP и более поздних версиях Windows.
Примечание. В 64-разрядных версиях Windows есть две версии файла Regsv32.exe:
-
64-разрядная версия — %systemroot%System32regsvr32.exe;
-
32-разрядная версия — %systemroot%SysWoW64regsvr32.exe.
Синтаксис команды Regsvr32
Программа RegSvr32.exe имеет следующие параметры командной строки.
Regsvr32 [/u] [/n] [/i[:строка_команд]] DLL-файл
/u — отменяет регистрацию сервера
/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд; при использовании с ключом /u вызывает DllUnInstall.
/n — не вызывает DllRegisterServer; это может использоваться с ключом /i
/s – “тихий” режим; окна сообщений не отображаются
Типичные решения ошибок Regsvr32
При появлении ошибки Regsvr32 попробуйте устранить ее одним из следующих способов.
-
Способ 1. Повторный запуск команды Regsvr32 в командной строке с повышенными привилегиямиЧтобы открыть командную строку с повышенными привилегиями, выполните указанные ниже действия.
Windows 8.1 и Windows 8Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows 7 и Windows VistaНажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Windows XPВойдите в систему в качестве администратора или с другой учетной записью с правами администратора и откройте окно “Командная строка”.
-
Способ 2. Использование 32-разрядной версии Regsvr32 для регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС WindowsЕсли при регистрации 32-разрядной библиотеки DLL в 64-разрядной версии ОС Windows появляется ошибка, выполните следующие действия.
-
Откройте командную строку с повышенными привилегиями.
-
Если 32-разрядная библиотека DLL находится в папке %systemroot%System32, переместите ее в папку %systemroot%SysWoW64.
-
Выполните следующую команду:
%systemroot%SysWoW64regsvr32 <full path of the DLL>
-
Сообщения об ошибках Regsvr32
В приведенной ниже таблице содержатся сообщения об ошибках RegSvr32 и возможные причины их возникновения.
Сообщение об ошибке |
Причина |
---|---|
Недопустимый параметр командной строки “”%1″”. Проверьте использование команды и повторите попытку. |
Введено недопустимое сочетание параметров командной строки для вызова средства regsvr32.exe. |
Эта команда допустима только в том случае, если открыт проект элемента OLE Activex в Microsoft Visual Studio. |
Средство Regsvr32.exe вызвано программой Visual Studio, но в командной строке не указано ни одного модуля. |
Чтобы зарегистрировать модуль, нужно задать имя двоичного файла. |
Средство Regsvr32.exe вызвано без указания модулей в командной строке. |
Не удалось выполнить команду OleInitialize. Недостаточно свободной оперативной памяти на этом компьютере. Закройте все открытые программы и повторите попытку. |
Средство Regsvr32 должно инициализировать библиотеку COM, прежде чем вызывать ее функции, и отменить инициализацию при завершении работы. Это сообщение об ошибке выводится, если попытка инициализации или ее отмены не были успешными. |
Не удалось загрузить модуль “%1”.nn Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.nn%2. |
При загрузке указанного в командной строке модуля произошла ошибка. Текст ошибки выводится как часть сообщения. |
Модуль “%1″ загружен, но точка входа %2 не найдена.nnПроверьте, что ” %1″ является правильным файлом DLL или OCX и повторите попытку. |
Средству Regsvr32.exe не удалось найти необходимую точку входа модуля, указанного в командной строке. Это может произойти при неправильном экспорте точек входа из модуля или если модуль не является DLL- либо OCX-файлом. |
Модуль ” %1″ загружен, но не удалось выполнить вызов %2, код ошибки: %3.nnДля получения дополнительных сведений об этой ошибке выполните поиск в Интернете, указав код ошибки как аргумент поиска. |
При вызове средством regsvr32.exe точки входа модуля, указанного в командной строке, произошла ошибка. Код ошибки выводится как часть сообщения. |
Возможно, модуль “%1” несовместим с версией Windows, работающей на этом компьютере. Проверьте, совместим ли этот модуль с x86 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe. |
Эта ошибка может произойти, если средство regsvr32.exe запущено на 32-разрядном (x86) компьютере, а в командной строке указан 64-разрядный модуль. |
В приведенной ниже таблице содержатся сообщения об ошибках RegSvr32 и возможные причины их возникновения.
Сообщение об ошибке |
Причина |
|
---|---|---|
Нераспознанный флаг: /неверный_флаг |
Введено недопустимое сочетание флагов и ключей. |
|
Не указано имя DLL. |
Не введено имя DLL-файла. |
|
Имя_DLL было загружено, но найти точку входа для DllRegisterServer или DllUnregisterServer не удалось. |
Файл с указанным именем DLL не является DLL- или OCX-файлом. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 wjview.exe. |
|
Имя_DLL не является исполняемым файлом, и ни одного модуля поддержки для этого типа файлов не зарегистрировано. |
Файл с указанным именем DLL не является исполняемым файлом EXE, DLL или OCX. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 autoexec.bat. |
|
Имя_DLL не поддерживает автоматическую регистрацию, либо в памяти находится поврежденная версия. |
Например, при вводе команды “regsvr32 icwdial.dll” будет возвращено это сообщение об ошибке, так как файл Icwdial.dll не регистрируется автоматически. При подозрении на наличие в памяти поврежденной версии файла с указанным именем DLL перезагрузите компьютер или повторно извлеките исходную версию файла. |
|
Ошибка функции OleInitialize (или OleUninitialize) |
Средство Regsvr32 должно инициализировать библиотеку COM, прежде чем вызывать ее функции, и отменить инициализацию при завершении работы. Эти сообщения об ошибке возникают, если попытка инициализации библиотеки COM или ее отмены не были успешными. Например, файл Ole32.dll поврежден или является неправильной версией. |
|
Сбой при загрузке библиотеки (“Имя_DLL”). GetlastError возвращает ошибку 0x00000485 |
Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND). Это означает, что “Не найден один из файлов библиотек, необходимых для выполнения данного приложения”. Например, при вводе команды regsvr32 missing.dll будет возвращено это сообщение об ошибке, если файл Missing.dll не найден. |
|
Сбой при загрузке библиотеки (“Имя_DLL”). GetLastError возвращает ошибку 0x00000002 |
Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND). Это означает “Не удается найти указанный файл”. Т. е. не найден соответствующий DLL-файл. Например, при вводе команды regsvr32 icwdial.dll будет возвращено это сообщение об ошибке, если файл Tapi32.dll не найден. |
|
Сбой при загрузке библиотеки (dskmaint.dll). GetLastError возвращает ошибку 0x000001f |
Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE). Это означает “Присоединенное к системе устройство не работает”. Это происходит при попытке регистрации файла Win16.dll. Например, это сообщение об ошибке будет отображено, если введена команда regsvr32 dskmaint.dll. |
|
Сбой при загрузке DllRegisterServer (или DllUnregisterServer) в Имя_DLL. Возвращенный код: строка |
В файле Winerror.h найдите строку, указанную в сообщении. |
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
Обычно операционные системы регистрируют DLL в фоновом режиме, но иногда вследствие повреждения жесткого диска, ошибки при установке программного обеспечения или заражения компьютерным вирусом может потребоваться зарегистрировать файл DLL вручную.
Данная инструкция расскажет, как выполнить эту процедуру.
Способ 1
- Нажмите кнопку Пуск
- В текстовое поле “Найти программы и файлы” введите:
- regsvr32 [полное_имя_файла]
- Полное имя файла при наличии пробелов в пути надо писать в кавычках.
- Например: regsvr32 “C:Program Files (x86)1cv77BINv7plus.dll”
- Нажмите Enter
Способ 2
- Нажмите кнопку Пуск
- В текстовое поле “Найти программы и файлы” введите cmd
- В появившемся перечне (под заголовком Программы) нажмите правой кнопкой мыши cmd.exe
- Из контекстного меню выберите “Запуск от имени администратора”
- Введите пароль, если появится соответствующий запрос
- В открывшемся окне интерпретатора команд Windows после приглашения системы введите:
- regsvr32 [полное_имя_файла]
- Полное имя файла при наличии пробелов в пути надо писать в кавычках.
- Например: regsvr32 “C:Program Files (x86)1cv77BINv7plus.dll”
Нажмите Enter
Примечания
При регистрации файлов *.dll происходит их запись в Реестр Windows. При этом в ветке [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSharedDLLs] создается соответствующий параметр REG_DWORD со значением 1.
Использование команды regsvr32:
regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл
- /u – отменяет регистрацию DLL
/s – «тихий» режим – окна сообщений не отображаются
/i – вызывает DllInstall, передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall
/n – не вызывает DllRegisterServer. Может использоваться с ключом /i.