Точка входа dllregisterserver не найдена — как исправить

Содержание

Как исправить ошибку: «точка входа DLLregisterserver не найдена» в Windows

В некоторых случаях при запуске приложения или игры появляется ошибка: «Точка входа DLLregisterserver не найдена». Однако чаще всего подобную ошибку устранить несложно, достаточно использовать несколько проверенных методов

Что за ошибка, почему возникает

После установки Windows или прочих сторонних программ, в системные папки добавляются динамические библиотеки – dll файлы. Это среда с заранее заданным исполняемым кодом для приложения. Если система не определяет подобные файлы – появляется ошибка «dllregisterserver, не найдена точка входа» в Windows 7, 8, 10, которая может сопровождаться кодами 0x80070005, 0x8002801c, 0х80040200 и другими. Причины возникновения могут быть совершенно разными: системные ошибки, заражение вирусом или неправильная установка приложения.

Загрузка библиотеки из интернета

Самый простой способ восстановления – скачать неповреждённый элемент из интернета и зарегистрировать его, например с dll.ru. Перед скачиванием определите разрядность своей версии Windows. После получения этой информации нужно скачать правильно работающую библиотеку из интернета, не рекомендуется использовать сомнительные ресурсы – они могут только добавить проблем.

Регистрация библиотеки

Регистрацию можно произвести двумя способами – через командную строку и с помощью окна «Выполнить».

Начнём с командной строки:

  1. Кликните правой кнопкой мыши на «Пуск» и выберете «командная строка».
  2. В появившемся окне введите regsvr32.exe путь к .dll.
  3. Нажмите Enter.

При помощи окна «Выполнить».

  1. Задействуете комбинацию на клавиатуре «Win+R».
  2. В появившемся окне введите regsvr32.exe путь кdll файлу.

После любого из вариантов регистрации перезагрузите ПК.

Если решение не помогло и ошибка «не удалось выполнить вызов dllregisterserver» не исчезла – попробуйте обновить операционную систему.

Обновление системы

В Windows 7 следует зайти в «Пуск», и набрать в поиске «Центр обновления Windows». В открывшемся меню — «Поиск обновлений».

Для «Десятки» нужно зайти в раздел параметры, затем «Обновление и безопасность», после чего выбрать «Центр обновления Windows», рядом будет видна «Проверка наличия обновлений».

Библиотека не регистрируется

Если были опробованы все вышеперечисленные способы, но «точка входа dllregisterserver не найдена» все равно, возможны еще три способа решения:

  1. Компонент скачан из ненадёжного источника. Скачивать их нужно только с проверенных сайтов.
  2. В случае если пользователь сам разработал библиотеку, то регистрировать ее нужно с помощью regasm.exe.
  3. Иногда помогает копирование нужного файла .dll в директорию с приложением, которое выдает ошибку.

Модуль загружен … но точка входа DLLRegisterServer не найдена

Крайне неприятная ошибка в Windows «Модуль загружен, но точка входа DLLRegisterServer не найдена» связана, как правило, с некорректным функционированием динамически подключаемой библиотеки (сокр., «.dll»), к которой обращается программа в процессе своей работы. В результате встроенный в Windows процесс отвечающий за регистрацию библиотеки в ОС, отказывается ее принять либо не может найти. А программа, обращающаяся к неработающим модулям, соответственно, не функционирует. Потому, предлагаю разложить по полочкам данную проблему для того, чтобы понять, каким образом ее можно исправить.

Сообщение о проблеме на экране компьютера

В чём суть ошибки «Модуль загружен, но точка входа DLLRegisterServer входа не найдена»?

Итак, объяснение смысла данной ошибки закономерно будет начать с определения «библиотеки«. Библиотека или в некоторых языках программирования, модуль (модули) — это набор подпрограмм, используемых в разработке программного обеспечения. Проще говоря, это совокупность небольших и независимых блоков, каждый из которых является функционально законченным фрагментом кода.

Для чего они предназначены? Существует огромное количество подпрограмм или процедур, выполняющих самые разные задачи. Некоторые из них содержат стандартные для многих программ вычислительные операции. К примеру, открытие диалоговых окон в Windows или нахождение квадратного корня из любого числа — это стандартные, часто встречающиеся процедуры. Так вот, чтобы не писать код таких подпрограмм каждый раз при создании ПО, были придуманы заранее заготовленные файлы, которые получили название «библиотеки». С помощью специальной функции их можно подключить к программе, при этом исполнимый код этой библиотеки не будет внедряться в код приложения, что позволяет сэкономить память ПК.

Библиотека dll

Динамические библиотеки DLL, встраиваемые в Windows, принадлежат к модулям общего пользования (shared library). Отличительные их особенности для пользователя состоят в следующем:

  • Функции, прописанные в таких библиотеках, могут использоваться несколькими программами одновременно;
  • Загружаются они по запросу соответствующего процесса, то есть динамически, не потребляя без надобности ресурсы ПК.

К сожалению, у DLL модулей есть и недостатки. Не будем говорить о так называемом «DLL Hell», так как на данный момент, несмотря на нарушение самого идейного принципа динамических библиотек общего пользования, разработчики Microsoft разрешили эту проблему. Гораздо важнее в данной статье отметить следующие недостатки:

  • При внесении в библиотеку изменений программы, использующие ее могут перестать работать. Этот недочет является излюбленным у распространителей вирусов. Ведь сама Windows функционирует на основе модулей и, повредив их код, можно повлиять на работу ОС.
  • При отсутствии библиотеки или ее некорректной версии программа, использующая данный модуль, соответственно, будет либо неправильно функционировать, либо откажется работать.
  • Функции, прописанные в библиотеке Dll, получают один адрес в оперативной памяти для всех процессов, вызывающих их, что упрощает эксплуатацию уязвимостей модульного метода организации ПО;

Теперь о том, что такое точка входа. Точкой входа называется адрес в оперативной памяти, по которому хранится первая команда программы. На самом деле, функций в одной библиотеке может быть несколько и каждая из них имеет свою точку входа, к которой и обращается процесс, вызывающий определенную подпрограмму.

Таким образом, скомпоновав все вышеописанное в единое целое, мы можем раскрыть суть ошибки «Модуль загружен, но точка входа DLLRegisterServer входа не найдена». Эта проблема возникает при регистрации библиотеки в системе. Процесс «Regsvr32.exe», отвечающий за инсталлирование интерфейсов объектов в ОС, не может обнаружить функцию регистрации библиотеки «DLLRegisterServer» в проблемном dll.

  • Код функции, которая запрашивается программой, поврежден. Это может быть вызвано как некорректной версией регистрируемой вами библиотеки, так и вирусной атакой, испортившей код модуля, путь к библиотеке в реестре или ее идентификатор GUID.
  • Функция DLLRegisterServer может изначально отсутствовать в коде регистрируемой вами библиотеки;
  • Отсутствие в коде библиотеки интеграции с компонентами COM/ActiveX, управляющими реализацией dll в Windows;
  • Процесс регистрации вообще состоит в том, чтобы прописать путь к подключаемому модулю (модулям) в реестре Windows, для того, чтобы ОС могла «увидеть» библиотеку и оповестить программу, запрашивающую ее, о наличии или отсутствии определенного модуля в системе. Кроме того, каждому классу или объекту, входящему в состав подпрограммы, присваивается уникальный идентификатор GUID, он также необходим для регистрации, поскольку программы работают не с самими библиотеками dll, а с функциональными компонентами, входящими в ее состав. Это говорит о том, что при неправильной регистрации библиотеки значения, прописанные в реестре, останутся неверными, в результате ОС не сможет «опознать» библиотеку, чтобы ПО имело возможность подключить ее.

Рассмотрев основные причины, по которым возникают неполадки с видимостью ОС библиотеки, можно перейти к путям их разрешения.

Исправляем проблему при которой модуль загружен, но точка входа DLLRegisterServer не найдена

Итак, для того чтобы самостоятельно справиться с проблемой “Модуль загружен, но точка входа DLLRegisterServer не найдена”, необходимо скачать библиотеку, которая была повреждена в результате действий вирусов или иных факторов. Ее название можно посмотреть в выскакивающем сообщении об ошибке.

Точка входа в библиотеку thumbcache.dll не найдена

Скачиваем библиотеки dll

Скачивая библиотеки, обязательно вначале уточните разрядность вашей версии Windows (х32/ х64). Если вы найдете и установите неподходящие файлы dll, ошибка “Модуль загружен, но точка входа DLLRegisterServer не найдена” исправлена не будет. Разместите скачанные вручную файлы в папках SysWOW64 и System32, находящихся C:Windows.

Один очень важный нюанс – при скачивании библиотек dll никогда не пользуйтесь подозрительными ресурсами. Во-первых, данные с таких сайтов могут просто не подойти для вашей ОС (они часто представляют из себя усеченную версию нужного файла), а, во-вторых, вероятнее всего, они содержат вредоносный код, который не только не избавит вас от проблем, но еще и добавит новых. Всегда при малейшем подозрении проверяйте сайт (для этого существуют различные онлайн-сервисы), читайте отзывы и комментарии пользователей. Если скачанный файл dll не работает, возьмите его с другого ресурса.

Регистрируем библиотеки dll

В случае, когда библиотека на компьютере в полном порядке, но точка входа все равно не найдена, попробуем зарегистрировать dll в RegSvr32. Рассмотрим пути избавления от проблемы на основе вышеуказанного изображения. Регистрируем файл thumbcache.dll, находящийся C:WindowsSysWOW64.
Первый способ – вызвать командную строку и ввести нужные данные:

  1. нажимаем win+x и находим в появившемся меню командную строку;
  2. после клика на последнюю появляется черное окно;
  3. после слова “Компьютер>” вводим слово regsvr32 и через пробел путь к проблемному файлу C:WindowsSysWOW64thumbcache.dll.

Регистрация библиотеки dll через командную строку

Нажимаем Enter и ждем окончания процесса регистрации библиотеки. Если данный метод не помогает, попробуйте повторить те же действия, но уже в командной строке от имени администратора. Возможно, вам не хватает прав для внесения изменений в систему.

Второй способ – использовать строку “Выполнить”:

  • нажимаем win+r и вызываем нужную нам строку;
  • в появившемся поле вводим название файла RegSvr32.exe и путь к отсутствующей библиотеке;
  • нажимаем OK и ждем результата.

Регистрируем dll через строку «Выполнить»

Устанавливаем обновления для Windows

Способ, к которому можно обращаться уже после того, как вышеуказанные методы не принесли желаемого результата – обновление компонентов вашей ОС. Для этого найдите на своем компьютере Центр обновления. Просмотрите все доступные обновления и прогрузите их. Процесс долгий, но необходимый. Быть может, проблема была в изначально неправильном коде dll-файлов, и разработчики уже нашли решение на своем уровне. Не выключайте соединение с интернетом и сам ПК во время установки обновлений, иначе результата не будет. Убедитесь, что все файлы прогружены и при необходимости повторите операцию.

Часто для исправления ошибки “Модуль загружен, но точка входа DLLRegisterServer не найдена” разработчики выпускают различное дополнительное ПО: моды, патчи, пакеты установки. В этом случае найдите и скачайте последнюю версию программного обеспечения, с которым у вас возникли проблемы. И напоследок о крайне нежелательном варианте – переустановке всей Windows. Конечно, этого без надобности не хочется делать никому, но, если система не открывает библиотеку dll, а все вышеуказанные методы уже испробованы, то сносите установленную и ставьте другую сборку ОС (из проверенных источников).

Точка входа dllregisterserver не найдена — как исправить

Сообщения: 50241
Благодарности: 14335

Конфигурация компьютера
Материнская плата: ASUS P8Z77-V LE PLUS
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб
Звук: Realtek ALC889 HD Audio
CD/DVD: ASUS DRW-24B5ST
ОС: Windows 8.1 Pro x64
Прочее: корпус: Fractal Design Define R4
Винда – сборка.

Оно и видно, в логе куча Cannot repair и Unable to repair (source file in store is also corrupted или hash mismatch).
SP1 на это чудо не ставится?

скачивал в нескольких местах d3d9.dll, менял

Это сообщение посчитали полезным следующие участники:

Сообщения: 23
Благодарности: 0

Сообщения: 1
Благодарности: 0

Сообщения: 50241
Благодарности: 14335

Конфигурация компьютера
Материнская плата: ASUS P8Z77-V LE PLUS
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб
Звук: Realtek ALC889 HD Audio
CD/DVD: ASUS DRW-24B5ST
ОС: Windows 8.1 Pro x64
Прочее: корпус: Fractal Design Define R4
при установке

При установке чего?

libusb0.dll

Сообщения: 2
Благодарности: 0

Конфигурация компьютера

Вложения

CBS.rar
(92.6 Kb, 32 просмотров)

Похожая проблема при запуске приложения, не находит mfc100.dll
При выполнении команды regsvr32 mfc100.dll всплывает окно “Не удалось загрузить модуль mfc100.dll . ”
При проверке в командной строке пишет что обнаружено несколько ошибок.

собственно лог после проверки:

Сообщения: 50241
Благодарности: 14335

Конфигурация компьютера
Материнская плата: ASUS P8Z77-V LE PLUS
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб
Звук: Realtek ALC889 HD Audio
CD/DVD: ASUS DRW-24B5ST
ОС: Windows 8.1 Pro x64
Прочее: корпус: Fractal Design Define R4
не находит mfc100.dll

Сообщения: 2
Благодарности: 0

Точка входа dllregisterserver не найдена — как исправить

Все в нашем мире не идеально. Операционная система, которая называется Windows, не является каким-либо важным исключением.

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

Эти уведомления появляются тогда, когда вы пытаетесь запустить какую-либо игру или приложение. Эти приложения могут не запускаться от того, что не зарегистрированы какие-то библиотеки или они вообще отсутствуют.

Причины ошибки — Точка входа dllregisterserver не найдена

Новые версии Windows, в частности 7 и 8 версии, взаимодействуют с программами при помощи файлов с расширением .dll.

Уведомление точка входа dllregisterserver не найдена чаще всего тогда, когда неверно прописаны или отсутствуют некоторые коды, которые содержаться в файлах с расширением .dll. Стоит отметить тот факт, что эта ошибка может возникать не только, если некорректно установлена операционная система, но и в некоторых прочих условиях. Допустим, если на вашем компьютере находятся различного рода вирусные приложения или программы. Они могут провоцировать сбой взаимодействия многих библиотек.

Также существует проблема, при которой вам может попасться софт плохого качества, в которой библиотеки могут просто напросто отсутствовать. В том случае если у вас некачественная программа, то вам можно посоветовать скачать такую же программу, но уже из другого источника. Также можно вручную скачать недостающую библиотеку DLL и вручную добавить ее в директории:

Не забывайте, что библиотеки нужно качать под вашу версию windows x64/x84(x32)

Помимо этого можно попробовать установить дополнительное программное обеспечение. Ими являются всевозможные патчи, моды или установочные пакеты. Еще одной проблемой, благодаря которой утилита не запускается, может стать то, что ваша операционная система перестает считывать библиотеки. Это, конечно, единичный случай, но все же это может случиться с каждым.

Как решить проблему — Точка входа dllregisterserver не найдена

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

Способ первый

Делать это можно по-разному, в том числе при помощи командной строки.

  1. Включить командную строку можно в меню «Пуск», далее «Стандартные» и там «Командная строка».
  2. Когда вы откроете командную строку (запускать от имени администратора), вам необходимо прописать в ней regsvr32 и путь к скачанному файлу, после чего нажать клавишу ENTER.

Способ второй

Однако, есть и другой способ, который даже проще первого.

  1. Для начала необходимо зайти в путеводитель «Выполнить». Его можно найти в том же «Пуск».
  2. В нем необходимо прописать regsvr32 и путь к скачанному файлу .dll, то есть то же самое, что и в первом способе.

Способ третий

Также есть третий способ, который работает на 100%, проверено автором статьи после долгих мучений. Если добавление DLL библиотек в директорию не помогло, не помогла переустановка программ и драйверов, все поправимо. Заходим в «Пуск» -> «Панель управления» -> «Центр обновления Windows».

Нажимаем на поиск обновлений, и после долгого ожидания загружаем все обновления которые будут найдены системой. Загрузка может длиться очень долго, в этом случае компьютер можно оставить на ночь. После полной загрузки и установки, следует еще несколько раз повторить такую операцию, до тех пор пока система не выгрузит все обновления на 100%.

После этого все компоненты которых не хватало, сами встанут на свои места и все заработает.

Заключение

В заключении хочется сказать о том, что перед тем, как скачивать .dll библиотеку, необходимо удостовериться в качественности источника, потому что бывает так, что под видом библиотек мы можете скачать вирусы, от которых потом придется избавиться.

Dadaviz

Ваш IT помощник

Точка входа dllregisterserver не найдена — как исправить

Операционная система Windows при установке ее на компьютер может становиться не совсем корректно. Последствиями таких ошибок в Windows 7/8/10 становятся выскакивающие уведомления от RegSvr32, указывающие что модуль загружен, а точка входа dllregisterserver не найдена. Также возможны ошибки «не удалось выполнить вызов dllregisterserver«, сопровождающиеся кодами ошибок (0x80004005, 0x80070005, 0x8002801c, 0x80020009 и другие). Они появляются при попытках запуска любых приложений, а также игр. Точка входа не может быть найдена данной программой по причине отсутствия библиотек или их регистрации. Если сказать проще: ярлык на рабочем столе находится вне зависимости от своего утилита, поэтому его активация не происходит.

Суть ошибки библиотеки

Windows (7/8/10) для образования связей с отдельными от нее программами применяет файлы .dll. Эти библиотеки содержат все необходимые коды. Если эти коды отсутствуют или прописаны неверно, то пользователю выдается сообщение «Точка входа dllregisterserver не найдена».

Рассмотрим некоторые первоисточники проблемы, ведь помимо некорректной установки операционной системы существует еще несколько причин:

  1. Многие программы шпионы провоцируют сбой библиотек. Вирусы иногда целенаправленно удаляют файлы dll. Стоит непременно проверить все основные диски на компьютере.
  2. Если точка входа невозможна лишь на одной программе, тогда вам попался некачественный софт. Библиотека попросту отсутствует. Может это вина разработчиков, хотя все сборки из интернета в основном делаются подпольно. Игра будет устанавливаться нормально, но без dll, пути к ней закрыты.
  • Очевидным остается вариант в виде скачивания программы из другого источника. Пробуйте сначала прочитать комментарии пользователей, их мнения о софте бывают полезными.
  • Как вариант можно попробовать скачать дополнительные установочные файлы. Иногда к утилитам прилаживают дополнения — патчи, моды. Это как с DirectX. Только установив последнюю версию, все заработает как надо. Убедитесь, все ли патчи были скачаны.
  1. Другие причины точно неизвестны, но ОС может и просто перестать находить библиотеки.

Как исправить ошибку dllregisterserver?

В основном, все решение сводится к скачиванию и регистрации в RegSvr32 отсутствующей библиотеки (она указана в окошке с сообщением).

Первый способ добавления — Прибегнем к помощи командной строки.

  1. Для ее вызова перейдите в «Пуск» и «Все программы».
  2. Пролистайте все до самого низа, именно тут находится папка «Стандартные».
  3. Теперь находите и кликаете по «Командной строке».
  4. Откроется черное окно. В него следует внести regsvr32.exe и указать путь к скачанным библиотекам на вашем компьютере. Жмем Enter.

Ввод регистрации RegSvr32 через командную строку

Второй способ добавления — наиболее простой. Все что нужно — это вызвать путеводитель «Выполнить».

  1. Жмем клавишу с нарисованным логотипом Windows и зажимаем R — Win+R.
  2. Появится новое окно. Прописываем regsvr32 и путь к библиотекам. ОК.

Регистрация библиотеки в RegSvr32 через меню Выполнить

Настоятельно советуем ознакомится с рекомендациями от Microsoft по вопросу регистрации RegSvr32 в Windows и подробному порядку действий, так как существуют некоторые нюансы, связанные с разрядностью системы (x32, x64).

Напоследок следует напомнить – никогда не качайте модули библиотеки .dll из неофициального сайта. Под их видом часто распространяют вирусы. В лучшем варианте они просто могут не подходить. Всегда проверяйте источники на качественный контент и знакомьтесь с комментариями.

Regsvr32

Regsvr32 (Microsoft Windows Register Server) — это системная утилита, предназначающаяся для регистрации и отмены регистрации элементов управления ActiveX , компонентов фильтров (кодеков) и компонентов библиотек DLL в системе Windows посредством внесения изменений в реестр.

Концепция динамических библиотек родилась из концепции overlay-модулей еще во времена, когда оперативная (физическая) памяти была достаточно дорога. Именно в то время родилась идея “сбрасывать” (выгружать) неиспользуемый в данный момент машинный код приложения в более дешевое внешнее хранилище данных (файл подкачки) и загружать его лишь в момент использования, что позволяло более эффективно использовать память. Дальнейшее развитие данной концепции привело к появлению динамически загружаемых библиотек (называемых упрощенно динамическими библиотеками), которые упростили архитектуру приложения, привело к решению проблемы дублирующегося кода, ведь вместо того, чтобы каждой программе использовать один и тот же код (к примеру, диалоговых окон), проще вынести его в отдельный файл (библиотеку DLL), обеспечивающий данный функционал для множества приложений, и один раз загрузив его в оперативную память, просто предоставлять тем или иным приложениям. Поэтому, характерная особенность динамической библиотеки заключается в том, что она может использоваться сразу несколькими приложениями, а система обеспечивает присутствие в памяти всего-лишь одной копии кода динамической библиотеки для всех приложений, которые содержат ссылки на функции данной библиотеки.
Начиная с Windows XP, в зависимости от разрядности ОС, утилита regsvr32.exe располагается либо только в директории %SystemRoot%System32 для 32-битных систем, либо в папках %SystemRoot%System32 и %SystemRoot%SysWOW64 для 64-битных (присутствуют две разные версии программы). Представляет собой утилиту командной строки, то есть, иными словами, работает с консолью и может использоваться в сценариях.

Смысл регистрации библиотек и элементов управления

По какой причине для использования функций DLL в системе непременно требуется их регистрация? Я думаю, вполне уместно будет привести аналогию с системной переменной пути ( %PATH% ). Как Вы помните, файлы, которые располагаются в директориях, указанных в переменной %PATH% , можно запускать из командной строки без указания полного пути к файлу, в противном случае их невозможно будет запустить из произвольной директории системы, командный интерпретатор их попросту не найдет. По аналогии и библиотеки, которые содержат функции, широко используемые различными программами, должны быть “объявлены” в системе, иначе программы не смогут их найти. Можно утверждать, что при вызове функции из образа исполняемого файла, загрузчик Windows (менеджер, который отвечает за выделение памяти, подключение различных функций из образов памяти и прч.) должен знать откуда можно подгрузить библиотеку, содержащую требуемую функцию.
Но что такое регистрация в системе применительно к библиотеке DLL? Это определенный алгоритм действий по модификации различных разделов реестра и каталогов файловой системы, результатом которого является “видимость” библиотеки приложениями. Если библиотека “сторонняя” (не системная), то регистрация библиотеки выполняется на этапе инсталляции приложения, для обслуживания функций которого она предназначается. В большинстве случаев сам процесс регистрации библиотеки выполняется при помощью вызова внешних специализированных системных утилит, либо определенной последовательности специализированных функций Windows API.

Можно рассмотреть простой пример, когда произвольно установленная в системе программа использует функцию из библиотеки, не “объявленной” в системе. В подобной ситуации загрузчик Windows на начальной стадии инициализации виртуального адресного пространства процесса выполняет импорт всех библиотек, требуемых загружаемой на выполнение программе. Если одна из библиотек, прописанных в таблице импорта исполняемого образа, отсутствует, то загрузчик выдает такое вот сообщение об ошибке:

Ошибка сообщает нам о том, что загрузчик образа cDSsvc.exe не смог найти библиотеку MFC71.DLL , необходимую ей для функционирования. Один из способов устранения данного класса ошибок состоит в повторной инсталляции программы, в ситуации, когда файл искомой библиотеки входит в состав какого-либо дистрибутива, поскольку библиотека инсталлируется автоматически скриптом инсталляции. Если библиотека входит в состав другого пакета, например Microsoft Visual C++ 2010 x64 Redistributable , то переустановить необходимо именно его. Если же описанными способами ошибку исправить все же не удается, тогда нам на помощь приходит утилита Regsvr32 .

Алгоритм регистрации библиотеки

Regsvr32 при помощи функции LoadLibrary загружает библиотеку и, в зависимости от того, хотите вы зарегистрировать либо разрегистрировать (отменить регистрацию) библиотеку, пытается найти точку входа и вызвать функцию DllRegisterServer() либо DllUnRegisterServer() данной библиотеки и смотрит на результат. Более того, при запуске утилиты с параметром “/i” работает дополнительная логика и regsvr32 будет искать в библиотеке уже точку входа функций DllInstall / DllUnInstall . Все это говорит в пользу того, что существуют определенные требования к структуре DLL, которую вы хотите регистрировать с помощью regsvr32. Для того, чтобы управляющий элемент можно было зарегистрировать с помощью regsvr32, в DLL должны быть, как минимум, реализованы (экспортированы) функции DllRegisterServer, DllUnregisterServer, а при необходимости выполнения специфичных действий еще и функции DllInstall, DllUnInstall. Функции DllRegisterServer / DllUnregisterServer содержат логику, которая фактически и выполняет регистрацию библиотеки в системе, добавляя записи в реестр, требующиеся для управляющего элемента. Функции DllInstall / DllUnInstall служат для выполнения дополнительных действий, которые планирует произвести автор DLL. Поэтому помните, что:

Давайте посмотрим, что же происходит в случае, когда, к примеру, не определена функция DllRegisterServer:

В этом случае мы видим на экране ошибку: “Модуль . загружен, но точка входа DllRegisterServer не найдена”. Но, давайте как перейдем, непосредственно, к самому процессу регистрации.

Новый метод

Как мы уже говорили, для регистрации библиотеки используется функция DllRegisterServer(). Функция проверяет 128-битный глобальный идентификатор (GUID, Global Unique ID) всех объектов COM/ActiveX, обнаруженных в библиотеке и последовательно прописывает информацию о них в реестр. GUID ни что иное как 128-битный глобальный идентификатор (GUID, Global Unique ID), идентифицирующий конкретный объект класса библиотеки. Регистрация объектов необходима, поскольку программы работают не с самими файлами DLL/OCX/ACX, а с объектами, представляющими определенный набор интерфейсов.
Для целей регистрации DLL используется следующие ветви реестра:

  • ветвь HKLMSOFTWAREClassesCLSID при регистрации COM-объектов библиотек для всех пользователей системы;
  • ветвь HKCUSOFTWAREClassesCLSID при регистрации COM-объектов библиотек только лишь для текущего пользователя;
  • ветвь HKLMSOFTWAREWow6432NodeClassesCLSID для регистрации 32-битных DLL в 64-битных ОС Windows;
  • Следует помнить, что некоторые расположения в реестре являются всего-лишь ссылками:

    В ветви HKEY_CLASSES_ROOTCLSID создается ключ с именем, эквивалентным идентификатору GUID. GUID применительно к СОМ называется идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют наименование CLSID . Примером значения CLSID может служить строка вида <2DB47AE5-CF39-43C2-B4D6-0CD8D90946F4>. В глобальном смысле данные уникальные номера “не повторяются” и уникально идентифицируют компоненты системы, что говорит нам об уникальности объекта класса библиотеки в пределах системы. Подразделами в этих ветках реестра могут быть:

    Точка входа dllregisterserver не найдена — как исправить

    Вопрос

    • Перемещено I.Vorontsov 22 декабря 2009 г. 8:13 (От:Разработка Windows-приложений)

    Все ответы

    Какие ошибки? На каком этапе проблема?

    Пытаюсь зарегистрировать winpplb.dll ?
    выдает ошибку регистрации , вернее библиотека была загружена, но найти точку входа для . не удалось.
    Зарегистрировать этот файл невозможно!

    Как быть? Файл скачан у производителя несколько раз с разных компьютеров и с поставляемого диска!

    Да, именно средствами Regsvr32 я и пытался прописать данную библиотеку! Пробовал и с ключами и без результат тот же (см. сообщения выше)

    Вы не поняли, я имел ввиду пользовались ли вы документацией расположенной по ссылке.

    Возможно, файл имя_DLL не экспортирован или в памяти находится поврежденная версия файла имя_DLL . Для обнаружения файла и его удаления воспользуйтесь средством Pview.

    Я эту штуку испробовал на трех ПК.
    Что на всех трех одна и та же проблема?

    Есть ли конкретное решение? Вы в принципе можете попробовать на своем ПК.
    Dll находятся на сайте www.argox.com

    http://www.argox.com/content.php?sno=0000033&P_ >
    скачайте Dll и попробуйте зарегистрировать winpplb.dll

    Потом расскажете, что не так было сделано.

    Далеко не все DLL нуждаются в регистрации и, соответвенно, могут быть зарегистрированы. Многие DLL не являются COM библиотеками и зарегистрированы быть не могут. Отдельные COM DLL не поддерживают саморегистрации и должны быть зарегистрированы путем создания записей в реестре, например при установке. Другой вариант – отсутвие других DLL которая данная DLL использует.

    Если вы разработчик софта и пытайтесь использовать данную DLL то связывайтесь с поддержкой производителя. This posting is provided “AS IS” with no warranties, and confers no rights.

    Источники:
    http://rusadmin.biz/oshibki/modul-zagruzhen-no-tochka-vhoda-dllregisterserver-ne-najdena/
    http://forum.oszone.net/thread-214086.html
    http://inarena.ru/tochka-vhoda-dllregisterserver-ne-naydena/
    http://dadaviz.ru/tochka-vhoda-dllregisterserver-ne-naydena-kak-ispravit/
    http://datadump.ru/regsvr32/
    http://social.technet.microsoft.com/Forums/ru-RU/69922a53-15cd-45d4-a57d-446c18f6b3b2/-windows-xp?forum=xpru
    http://forums.goha.ru/showthread_0_0_t206442

    Ссылка на основную публикацию