Использование средства Regsvr32 и устранение неполадок, связанных с выводимыми им сообщениями об ошибках

Если вы получили сообщение об ошибке, описания которого нет в этой статье, можно найти его подробное объяснение, рекомендуемые действия и список дополнительных ресурсов поддержки на странице ошибок и событий TechNet. 

Аннотация

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.

Синтаксис команды 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 появляется ошибка, выполните следующие действия.

    1. Откройте командную строку с повышенными привилегиями.

    2. Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.

    3. Выполните следующую команду:

      %systemroot%\SysWoW64\regsvr32 <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".\n\n Проверьте, что двоичный файл хранится на указанном пути или запустите отладку, чтобы диагностировать проблемы с этим двоичным файлом или зависимыми DLL-файлами.\n\n%2.

При загрузке указанного в командной строке модуля произошла ошибка. Текст ошибки выводится как часть сообщения.

Модуль "%1" загружен, но точка входа %2 не найдена.\n\nПроверьте, что " %1" является правильным файлом DLL или OCX и повторите попытку.

Средству Regsvr32.exe не удалось найти необходимую точку входа модуля, указанного в командной строке. Это может произойти при неправильном экспорте точек входа из модуля или если модуль не является DLL- либо OCX-файлом.

Модуль " %1" загружен, но не удалось выполнить вызов %2, код ошибки: %3.\n\nДля получения дополнительных сведений об этой ошибке выполните поиск в Интернете, указав код ошибки как аргумент поиска.

При вызове средством 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 найдите строку, указанную в сообщении.


Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×