Среди частых вопросов пользователей, особенно после того, как они сталкиваются с тем, что какая-то из библиотек DLL отсутствует в Windows 10, Windows 11 или других версиях системы — как зарегистрировать DLL в соответствующей версии ОС.
В этой инструкции подробно о способах регистрации библиотек DLL в Windows x64 и x86 (32-бит) с помощью regsvr32.exe (и кратко о regasm.exe), о возможных нюансах и проблемах, которые могут возникнуть в процессе.
Регистрация библиотеки DLL в Windows 10, Windows 11 и предыдущих версий системы
Дальнейшие шаги описаны в предположении, что 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.
Сам процесс регистрации в общем случае состоит из следующих шагов:
- Нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой Windows). Также можно нажать правой кнопкой мыши по кнопке «Пуск» в Windows 11 или Windows 10 и выбрать пункт контекстного меню «Выполнить».
- Введите команду regsvr32.exe путь_к_файлу (если путь к файлу содержит пробелы, возьмите весь путь в кавычки), например, для регистрации библиотеки DLL COMCNTR.DLL в 1С (для 64-бит) команда может иметь вид:
regsvr32.exe "C:\Program Files\1cv8\8.3.19.1150\bin\comcntr.dll"
Если 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 не поддерживает регистрацию описанным методом. Можно попробовать использовать вариант команды:
regsvr32 /i /n путь_к_файлу.dll
но с большой вероятностью и это не поможет.
У большинства домашних пользователей такая проблема возникает при регистрации файлов DLL для игр и программ, часто не вполне лицензионных, которые сообщили, что нужный файл DLL не обнаружен или отсутствует. Причем сами библиотеки DLL обычно скачаны со сторонних сайтов (и чаще всего имеют имена начинающиеся с «vc», «msvc» или «d3d»). А решение, как правило, простое — выяснить, частью какого набора компонентов является эта DLL и установить эти компоненты с помощью их собственного установщика. Более подробно проблема и подходы к решению описаны в инструкции Точка входа DllRegisterServer не найдена — причины и возможные решения.
Видео
Надеюсь, цель достигнута, а количество вопросов, связанных с регистрацией DLL в Windows, уменьшилось.
Одним из важнейших элементов Windows 10 являются файлы динамических библиотек с расширением DLL (Dynamic Link Library). Они могут использоваться как компонентами самой системы, так и сторонними программами и играми для работы с процессором, памятью и прочими устройствами компьютера. Один и тот же модуль динамической библиотеки иложет использоваться одновременно несколькими приложениями сразу. Яркий пример — DirectX. Как правило все подобные инструменты ставятся пакетно, распаковывая в системную папку сразу все необходимые элементы и модули. Но иногда бывают случаи, когда необходимой библиотеки нет или используется неактуальная версия. Тогда необходимо скачать в Интернете нужный файл, а затем зарегистрировать библиотеку DLL в Windows, чтобы система смогла с ним работать. Как это сделать я сейчас подробно расскажу.
Итак, Вы скачали из Интернета нужный модуль, распаковали из архива и теперь возникает совершенно логичный вопрос — а куда кидать DLL в систему?! Во первых, сначала надо определить разрядность системы, так как в 32-битной для этой цели используется одна папка, а в 64-битной — другая. Делается это очень легко. Кликаем правой кнопкой на значке «Этот компьютер» на рабочем столе и в меню выбираем пункт «Свойства». В появившемся окне находим строчку «Тип системы» и смотрим что там написано:
То же самое можно посмотреть и через командную строку, введя команду systeminfo. Она выведет всю информацию о установленной ОС Виндовс, и в строке «Тип системы» будет указана её разрядность.
Ну а дальше всё просто:
Для Windows 10 x32: %windir%\system32 Для Windows 10 x64: %windir%\SysWOW64
Вот именно сюда и надо устанавить ДЛЛ-файл. Здесь %windir% — это переменная окружения, указывающая путь к системной директории, в которой располагаются все важные компоненты Виндовс.
Проще говоря, если операционная система установлена на диске С:\, то путь к нужным папкам будет C:\Windows\System32 для 32-разрядной и C:\Windows\SysWOW64 для 64-разрядной.
Регистрация DLL в Windows
Теперь самое интересное — как зарегистрировать библиотеку dll в Windows. Нажимаем кнопку Пуск правой кнопкой мыши и выбираем в контекстном меню пункт «Выполнить»:
Того же самого эффекта можно достигнуть нажав комбинацию клавиш WIN+R. Повявится вот такое окно «Выполнить»:
В строку «Открыть» надо ввести вот такую команду:
regsvr32 <полный_путь_к_файлу_библиотеки>
В качестве примера давайте зарегистрируем библиотеку runtime.dll для 32-хбитной версии Windows 10. команда будет такой:
regsvr32 C:\Windows\System32\runtime.dll
Нажимаем на кнопку «ОК» и ждём что нам ответит система. Если всё правильно — она просто «съест» файл. Но случается и ошибки. Вот самая распространённая:
Связана она либо с ошибкой в пути или имени файла, либо с неправильно выбранной папкой, в которую была скопирована ДЛЛ-ка для регистрации. Стоит ещё раз всё тщательно проверить.
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%\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 появляется ошибка, выполните следующие действия.
-
Откройте командную строку с повышенными привилегиями.
-
Если 32-разрядная библиотека DLL находится в папке %systemroot%\System32, переместите ее в папку %systemroot%\SysWoW64.
-
Выполните следующую команду:
%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 найдите строку, указанную в сообщении. |
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
После активации дополнительно установленных программ на персональное устройство (стационарное, портативное) пользователи могут столкнуться с разного рода неполадками. Если на мониторе ПК отобразилось уведомление о том, что обнаружена ошибка regsvr32 и необходимо провести регистрацию дополнительного файла DLL для блока Win10 х64, юзер не сможет завершить текущие операции и действия. Нужно проверить устройство и устранить сбой.
Как зарегистрировать файл DLL в Windows 10
Существует несколько вариантов решения проблемы, связанной с регистрацией документа DLL в операционной системе Windows 10. Начинать можно с любого подходящего способа. Если один не сработал, переходят к следующему.
С использованием «regsvr32.exe» в окне «Выполнить»
Командное окно «Выполнить» – стандартный инструмент, используемый пользователями Виндовс на 32 или 64 bit для устранения разного рода неполадок. Инструкция:
- вызвать рабочее поле, используя комбинацию горячих клавиш «Win» и «R», либо через раздел «Пуск»;
- в пустую строку ввести команду и путь регистрации необходимого файла: exe C:\Windows\System32\dllname.dll;
- подтвердить запрос кнопкой «ОК» или «Enter».
Внимание! Если нужный документ находится не на диске С, используют запрос %systemroot%\System32\regsvr32.exe %windir%\System32\dllname.dll. В данном случае операционка самостоятельно определяет папку расположения блоков ОС.
По завершении процедуры, которая займет некоторое время, на мониторе ПК отобразится уведомление о текущем результате выполнения команды.
Через Командную строку
Регистрация библиотеки через Command Line осуществляется следующим образом:
- запустить панель «Выполнить» (с помощью горячих клавиш или кнопки «Пуск»);
- в пустое поле вводится запрос «cmd» и затем «ОК»;
- откроется окно черного цвета, где требуется ввести команды из предыдущей инструкции.
Для ввода значений можно использовать функцию копирования и вставки скопированных строк.
Использование «Открыть с помощью»
Чтобы использовать данный инструмент, необходимо открыть папку System32. Затем выполнить несколько последовательных шагов:
- по файлу audiosrv кликнуть правой клавишей мышки, откроется дополнительное меню действий;
- нажать строку «Открыть с помощью»;
- выбрать пункт «Обзор», затем – программу System32 или SysWow64 (в зависимости от разрядности действующей операционки).
С помощью указанного приложения требуется запустить DLL, после чего операционная система должна произвести определенные процедуры и отобразить уведомление об успешности завершения процесса.
Почему не удается зарегистрировать DLL
В некоторых случаях зарегистрировать нужную библиотеку не удается из-за наличия других неисправностей или ошибок. Основные варианты:
- несовместимость документа с установленной операционкой – нужно проверить разрядность активируемого файла (64 или 32);
- отсутствует точка входа – некоторые DLL не настроены на работу с командами типа DllRegisterServer.
Внимание! Иногда сайты, позволяющие скачать необходимые регистры, выдают за рабочие файлы документы, зараженные вирусами или не являющимися библиотеками. Такие блоки зарегистрировать невозможно.
Регистрация дополнительных рабочих библиотек DLL выполняется с помощью Командной строки, окна «Выполнить» или запроса «Открыть с помощью». Ошибку с активацией можно устранить самостоятельно, без обращения к мастеру. Важно четко выполнять инструкции и корректно вводить командные запросы, в противном случае можно внести изменения, которые будет сложно исправить.
Регистрация dll в Windows 10 x64 производится следующим образом. Сначала узнаёте какая у вашей системы разрядность.
Сделать это можно открыв Параметры — Система — О системе. Затем в соответствии с разрядностью вашей системы поместите библиотеку в папку по следующему адресу:
- При 64 разрядной системе библиотеку нужно разместить по адресу C:\Windows\SysWOW64.
- При 32 разрядной системе библиотеку нужно разместить по адресу C:\Windows\System32.
После этого с помощью клавиш WIN+R вызовите окно Выполнить. Впишите в это окно команду regsvr32 адрес DLL файла, например в 64 разрядной системе команда может выглядеть так regsvr32 C:\Windows\SysWOW64\shell32.dll.
Нажав на кнопку ОК или на клавишу Enter вы произведёте регистрацию DLL в Windows 10 x64. В подтверждение этому откроется окно с сообщением.