Команда для регистрации dll. Windows Регистрация файлов с расширением *.dll и *.ocx. Почему возникает ошибка при обращении к DLL

Появляется сообщение, что не найден файл *.dll (например, VCompLib.dll ). При этом программа, естественно, не запускается.

Сообщения об ошибках могут быть разные (это зависит в основном от того, на каком языке написана программа), например: «Component "MSCOMM32.OCX" not correctly registered: file is missing or invalid» , или «Приложению не удалось запуститься, поскольку MSVBVM50.DLL не был найден. Повторная установка приложения может исправить эту проблему» , или «Runtime DLL/OCX File error» . При этом может появиться окно Помощника по совместимости программ с сообщением Эта программа требует отсутствующий компонент Windows .

Способы решения проблемы

Если возникают ошибки, связанные с файлами *.dll , необходимо:

1. Переустановить программу.

2. Если переустановка программы не помогает, нужно проверить наличие в системе требуемых файлов.

Файлы *.dll , как правило, должны быть расположены в папке \Windows\System32 (реже – в каталоге конкретной программы). Если файлы присутствуют, нужно зарегистрировать их.

Если требуемых файлов нет, найдите их в Интернете, скачайте и скопируйте в папку \Windows\System32 и в каталог программы. Теперь нужно зарегистрировать их.

Как зарегистрировать файлы *.dll

Регистрация файлов *.dll производится с помощью сервера регистрации regsvr32.exe (дисковый адрес которого – \Windows\System32 ).

Рассмотрим способы регистрации:

1. Нажмите кнопку Пуск ;

– в текстовое поле Найти программы и файлы введите regsvr32 имя_файла –> Enter .

2. Нажмите кнопку Пуск ;

– в текстовое поле Найти программы и файлы введите cmd ;

– в появившемся перечне (под заголовком Программы ) нажмите правой кнопкой cmd.exe ;

– из контекстного меню выберите Запуск от имени администратора ;

– введите пароль, если появится соответствующий запрос;

– в открывшемся окне после приглашения системы введите regsvr32 имя_файл , нажмите Enter .

3. Если вы пользуетесь файловым менеджером Total Commander , то можно выполнить регистрацию файлов *.dll с помощью командной строки Total Commander .

Если регистрация файлов *.dll прошла успешно, появится окно RegSvr32 с соответствующим сообщением, например: «Успешное выполнение DllRegisterServer в C:\WINDOWS\system32\msvbvm50.dll» :


Примечания

1. При регистрации файлов *.dll происходит их запись в Реестр Windows . При этом в ветке создается соответствующий параметр REG_DWORD со значением 1 .

2. Использование команды regsvr32 :

regsvr32 ] DLL-файл

/u – отменяет регистрацию DLL ;

/s – «тихий» режим – окна сообщений не отображаются;

/i – вызывает DllInstall , передавая параметром необязательную строку_команд, при использовании с ключом /u вызывает DLLUnInstall ;

Ознакомьтесь с принципом работы этого метода. Чтобы зарегистрировать DLL-файл, можно использовать команду «regsvr» и имя DLL-файла (если файл поддерживает эту команду). Будет создан путь от реестра Windows к DLL-файлу, что упростит системе поиск и использование файла.

  • Как правило, этим методом пользуются для регистрации DLL-файлов, которые относятся к сторонним программ и которые напрямую взаимодействуют с системными утилитами (например, с командной строкой).

Уясните суть ошибки «entry point» (точка входа). Если DLL-файл уже зарегистрирован, он не поддерживает команду «regsvr» или его код не позволяет подключиться к реестру Windows, вы получите сообщение об ошибке «The module was loaded but the entry point DllRegisterServer was not found» (Модуль [имя DLL файла] загружен, но точка входа DllRegisterServer не найдена). Если на экране отобразилось такое сообщение, вы не сможете зарегистрировать DLL-файл.

  • Ошибка «точки входа» - это не столько проблема, сколько подтверждение того, что DLL-файл регистрировать не нужно.
  • Найдите DLL-файл, который вы хотите зарегистрировать. Перейдите в папку с нужным DLL-файлом и найдите его.

    • Если DLL-файл относится к установленной программе, откройте папку с этой программой (например, C:\Program Files\[имя программы]).
  • Откройте свойства DLL-файла. Щелкните правой кнопкой мыши по DLL-файлу и в меню выберите «Свойства». Откроется всплывающее окно.

    Найдите имя DLL-файла. В текстовом поле в верхней части окна «Свойства» вы найдете полное имя файла.

    • У большинства DLL-файлов сложные имена, поэтому оставьте окно «Свойства» открытым, чтобы скопировать имя позже.
  • Скопируйте путь к DLL-файлу. Удерживайте левую кнопку мыши и проведите указателем вдоль текста, который отображается в строке «Расположение», а затем нажмите Ctrl + C , чтобы скопировать путь к DLL-файлу.

    Найдите командную строку. Введите командная строка в строке поиска меню «Пуск». Значок командной строки отобразится в верхней части меню «Пуск».

    Откройте командную строку как администратор. Для этого:

  • Перейдите в каталог с DLL-файлом. Введите cd , нажмите на пробел, нажмите Ctrl + V , чтобы вставить путь к DLL-файлу, а затем нажмите ↵ Enter .

    • Например, если DLL-файл находится в папке «SysWOW64», которая расположена в папке «Windows», команда будет выглядеть так: cd C:\Windows\SysWOW64
  • Введите команду «regsvr» и имя DLL-файла. Введите regsvr32 , нажмите на пробел, введите имя DLL-файла (вместе с расширением.dll) и нажмите ↵ Enter . Если DLL-файл можно зарегистрировать, на экране появится подтверждение регистрации.

    • Например, если имя DLL-файла «usbperf.dll», команда будет выглядеть так: regsvr32 usbperf.dll
    • Чтобы скопировать имя DLL-файла, повторно откройте папку с DLL-файлом (откроется окно «Свойства»), выделите имя файла и нажмите Ctrl + C . Затем вставьте имя в командную строку - для этого нажмите Ctrl + V .
    • Если DLL-файл уже зарегистрирован или не может быть зарегистрирован, отобразится ошибка «точки входа», а не подтверждение регистрации.
  • Попробуйте отменить регистрацию DLL-файла, а потом перерегистрировать его. Если ввод команды «regsvr» приводит к ошибке, которая не является ошибкой «точки входа», отмените регистрацию DLL-файла, а затем перерегистрируйте его; для этого:

    • введите regsvr32 /u имя_файла.dll и нажмите ↵ Enter . Вместо «имя_файла» введите имя своего DLL-файла;
    • Введите regsvr32 имя_файла.dll и нажмите ↵ Enter . Вместо «имя_файла» введите имя своего DLL-файла.
  • Не регистрируется Dll, ActiveX под Windows 7 - что делать?

    В привычных всем Windows до XP включительно регистрация Dll, ActiveX компонентов без проблем выполнялась командой regsvr32.

    В Windows 7 в принципе то же самое, но внесены некоторые "усовершенствования", из-за чего привычный порядок действий нередко не дает ожидаемого результата. Например:

    Согласитесь, очень понятное и информативное сообщение. Отличный повод для разработчика ОС - предложить пользователю приобрести выпустить Windows 8, новую, еще более усовершенствованную версию, где это сообщение, возможно, переведут на человеческий язык.

    А именно: окно терминала (командной строки, cmd) следует открывать командой "Запуск от имени администратора" (доступно нажатием правой кнопки мыши).

    В большинстве случаев это решает проблему.

    Дополнительные действия могут потребоваться, если используется 64битная версия ОС. Дело в том, что программы в ней могут быть не только 64битными но и 32 битными. Причем большинство программ - 32битные, ибо польза от 64бит есть только на ресурсоемких приложениях.

    В частности, клиентская часть 1С (т.е. та 1С, с которой работает пользователь) является 32 битным приложением. (Вот сервер 1С уже может быть как 32 битным, так и 64битным, но это касается больших организаций, если у Вас 1С Бухгалтерия и 5 пользователей, то 99% что у Вас никакого сервера 1С нет и все 32 битное).

    ActiveX компоненты также могут быть 32 битными или 64 битными, причем должна использоваться та версия, разрядность которой соответствует приложению. OcvitaBarcode ActiveX является 32 битным приложением.

    Так вот, программы для регистрации 32битных и 64 битных ActiveX в Windows 6 64 битной тоже разные, но при этом они обе называются regsvr32.exe. (Как говорил Козьма Прутков, "если на клетке со слоном написано "буйвол", не верь глазам своим".) Поэтому, если Вы просто набираете в командной строке

    regsvr32 какая-то.ocx

    то в теории должна запуститься нужная regsvr32, на практике может запуститься что угодно. Зачем так сделано? ну все за тем же, если сразу сделать по-человечески, кто будет новую версию Windows покупать.

    Поэтому для гарантированного запуска 32битной regsvr32, следует в окне терминала набирать команду

    c:\windows\syswow64\regsvr32.exe OcvitaBarcode.ocx

    Если windows установлена не в c:\windows, то путь естественно, указываем какой есть. И помним, что окно терминала следует открывать от имени администратора.

    При соблюдении вышеуказанных правил 32битные ActiveX, в т.ч. OcvitaBarcode ActiveX без проблем работают в Windows 7:


    Установка игры или тяжелого приложения подразумевает автоматическую инсталляцию и регистрацию необходимых библиотек DLL в операционной системе Windows. DLL – это динамические библиотеки, обращение к которым многократно может идти от нескольких приложений. Если при попытке обращения со стороны игры или программы к определенной библиотеке DLL возникла ошибка, пользователь увидит сообщение «точка входа dllregisterserver не найдена» или «запуск невозможен, отсутствует.dll файл». Эти и другие ошибки, сообщающие о проблемах при обращении к динамической библиотеке, можно устранить, если самостоятельно зарегистрировать нужный файл DLL в Windows.

    Почему возникает ошибка при обращении к DLL

    Библиотеки DLL добавляются в операционную систему при обновлении Windows и при установке приложений. Исходя из этого, можно выделить следующие основные причины, почему возникает ошибка, сообщающая об отсутствии или проблемах с DLL файлом:

    • DLL библиотека не была установлена. Причин этому может быть две – Windows не обновлен до актуальной версии, а библиотека поставляется с одним из последних обновлений, или игра/приложение при установке по некоторым причинам не произвела инсталляцию и регистрацию новых библиотек DLL.
      Обратите внимание: Чаще всего в установочные файлы приложения включены все необходимые библиотеки DLL, и разработчики не надеются, что на компьютере уже ранее были установлены необходимые компоненты.
    • Повреждение библиотек DLL. Данная проблема чаще всего возникает, если библиотеки DLL были повреждены вирусным программным обеспечением или неосторожными действиями пользователя, например, внесением изменений в реестр, которые привели к повреждению динамических библиотек.

    Большая часть библиотек DLL устанавливается на компьютер вместе с DirectX, поэтому если при установке игры или приложения возникает предложение обновить/установить DirectX, от него не нужно отказываться, иначе велик риск появления ошибки «запуск невозможен, отсутствует.dll файл».

    Как зарегистрировать DLL в Windows

    Если по некоторым причинам в Windows отсутствует библиотека DLL, необходимая для запуска игр и приложений, пользователь может самостоятельно ее зарегистрировать. Сделать это возможно двумя способами, предварительно загрузив на компьютер необходимую библиотеку DLL.

    Регистрация DLL с помощью командной строки

    Чтобы зарегистрировать имеющуюся на компьютере библиотеку DLL через командную строку, проделайте следующие действия:


    Регистрация DLL с помощью строки «Выполнить»

    Регистрация DLL через строку «Выполнить» практически ничем не отличается от действий с командной строкой. Пользователю необходимо:


    Что делать, если не удается зарегистрировать библиотеку DLL

    Возможна ситуация, когда Windows выдаст ошибку на команду по регистрации библиотеки, в которой указано, что модуль загружен, но точка входа DllRegisterserver не найдена. Вероятны и другие вариации схожих ошибок, из-за которых не удается зарегистрировать библиотеку DLL. Возникают такие ошибки по следующим причинам:

    Если возникают ошибки при попытке регистрации библиотеки DLL, первым делом нужно попробовать загрузить официальный компонент от поставщика, чтобы исключить вероятность файла-«пустышки». Для этого потребуется воспользоваться поисковой системой и найти, к какому компоненту системы относится проблемный DLL.

    Loading...Loading...