Как зарегистрировать библиотеку dll в windows
Содержание:
- Как исправить ошибки regsvr32.exe всего за несколько шагов?
- Часто встречающиеся ошибки 1С и общие способы их решения Промо
- Как зарегистрировать библиотеку DLL в windows: через командную строку, возможные ошибки
- Привязанный номер телефона
- Что такое библиотеки DLL, когда им необходимо обновление
- Три метода регистрации DLL в ОС
- Регистрация библиотеки DLL. Что и как делать?
- Первый способ регистрации DLL
- Почему нельзя просто его скачать?
- Смысл регистрации библиотек и элементов управления
- Как открыть файл dll в windows 7
- [упрощенное] описание процесса регистрации библиотеки
- Что за RegSvr32?
- Возможные ошибки при регистрации
- Автокликер для 1С
- Семейный календарь
- Заключение
Как исправить ошибки regsvr32.exe всего за несколько шагов?
Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!
Ошибки файла regsvr32.exe могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.
Шаг 1.. Сканирование компьютера на наличие вредоносных программ.
Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом regsvr32.exe или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.
Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно
Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии — сравнение антивирусного программного обеспечения
Шаг 2.. Обновите систему и драйверы.
Установка соответствующих исправлений и обновлений Microsoft Windows может решить ваши проблемы, связанные с файлом regsvr32.exe. Используйте специальный инструмент Windows для выполнения обновления.
- Откройте меню «Пуск» в Windows.
- Введите «Центр обновления Windows» в поле поиска.
- Выберите подходящую программу (название может отличаться в зависимости от версии вашей системы)
- Проверьте, обновлена ли ваша система. Если в списке есть непримененные обновления, немедленно установите их.
- После завершения обновления перезагрузите компьютер, чтобы завершить процесс.
Помимо обновления системы рекомендуется установить последние версии драйверов устройств, так как драйверы могут влиять на правильную работу regsvr32.exe или других системных файлов. Для этого перейдите на веб-сайт производителя вашего компьютера или устройства, где вы найдете информацию о последних обновлениях драйверов.
Шаг 3.. Используйте средство проверки системных файлов (SFC).
Проверка системных файлов — это инструмент Microsoft Windows. Как следует из названия, инструмент используется для идентификации и адресации ошибок, связанных с системным файлом, в том числе связанных с файлом regsvr32.exe. После обнаружения ошибки, связанной с файлом %fileextension%, программа пытается автоматически заменить файл regsvr32.exe на исправно работающую версию. Чтобы использовать инструмент:
- Откройте меню «Пуск» в Windows.
- Введите «cmd» в поле поиска
- Найдите результат «Командная строка» — пока не запускайте его:
- Нажмите правую кнопку мыши и выберите «Запуск от имени администратора»
- Введите «sfc / scannow» в командной строке, чтобы запустить программу, и следуйте инструкциям.
Шаг 4. Восстановление системы Windows.
Другой подход заключается в восстановлении системы до предыдущего состояния до того, как произошла ошибка файла regsvr32.exe. Чтобы восстановить вашу систему, следуйте инструкциям ниже
- Откройте меню «Пуск» в Windows.
- Введите «Восстановление системы» в поле поиска.
- Запустите средство восстановления системы — его имя может отличаться в зависимости от версии системы.
- Приложение проведет вас через весь процесс — внимательно прочитайте сообщения
- После завершения процесса перезагрузите компьютер.
Если все вышеупомянутые методы завершились неудачно и проблема с файлом regsvr32.exe не была решена, перейдите к следующему шагу. Помните, что следующие шаги предназначены только для опытных пользователей
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.
Как зарегистрировать библиотеку DLL в windows: через командную строку, возможные ошибки
Установка игры или тяжелого приложения подразумевает автоматическую инсталляцию и регистрацию необходимых библиотек 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 через командную строку, проделайте следующие действия:
- Запустите командную строку от имени администратора;
- В открывшемся окне пропишите команду: regsvr32.exe путь_к_библиотеке_DLL
Вместо «путь_к_библиотеке_DLL» напишите полный путь до библиотеки, например: C:/windows/system32/comctl32.dll
- Нажмите Enter, после чего произойдет регистрация библиотеки DLL.
Регистрация DLL с помощью строки «Выполнить»
Регистрация DLL через строку «Выполнить» практически ничем не отличается от действий с командной строкой. Пользователю необходимо:
- Открыть строку «Выполнить», нажав на клавиатуре сочетание клавиш windows+R;
- Откроется окно, в котором нужно прописать команду: regsvr32.exe путь_к_библиотеке_DLL
- Далее нажмите «ОК», после чего произойдет регистрация библиотеки DLL.
Что делать, если не удается зарегистрировать библиотеку DLL
Возможна ситуация, когда windows выдаст ошибку на команду по регистрации библиотеки, в которой указано, что модуль загружен, но точка входа DllRegisterserver не найдена. Вероятны и другие вариации схожих ошибок, из-за которых не удается зарегистрировать библиотеку DLL. Возникают такие ошибки по следующим причинам:
- Ряд библиотек DLL не предназначены для регистрации, и в них отсутствует подобная возможность;
- Библиотека уже зарегистрирована системой. Если возникают ошибки при обращении к ней, вероятнее всего она заражена вирусом или повреждена;
- Неправильный DLL файл. Возможны ситуации, когда DLL-файлы изначально повреждены или не содержат в себе нужных компонентов;
- DLL не совместим с текущей версией windows.
Если возникают ошибки при попытке регистрации библиотеки DLL, первым делом нужно попробовать загрузить официальный компонент от поставщика, чтобы исключить вероятность файла-«пустышки». Для этого потребуется воспользоваться поисковой системой и найти, к какому компоненту системы относится проблемный DLL.
В редких ситуациях проблемы с регистрацией библиотеки DLL могут возникать, если она не находится в одной папке с исполняющим файлом .exe компонента или приложения. В таком случае нужно переместить библиотеку в папку с исполняющим файлом и попробовать вновь ее зарегистрировать.
Привязанный номер телефона
Каждая страница в рассматриваемой соцсети в обязательном порядке привязывается во время регистрации к номеру телефона, позволяющему разблокировать все основные функции сайта и впоследствии выступающему в качестве основного средства восстановления доступа. Узнать данную информацию можно по одному из двух вариантов.
Вариант 1: Собственный номер
Несмотря на возможность поменять привязанный телефон через настройки учетной записи, узнать свой собственный номер стандартными средствами социальной сети не получится. Связано это с системой безопасности сайта, скрывающей нужные символы в общих параметрах, позволяя узнать только последние цифры. Более подробно все нюансы были нами описаны в отдельной инструкции.
Подробнее: Как узнать, к какому номеру телефона привязана страница ВК
Кроме как посмотреть последние цифры и по возможности создать обращение в службу поддержки, можно узнать номер во время процедуры изменения. Для этого необходимо нажать кнопку «Изменить» в блоке «Номер телефона» и вводить символы по памяти до тех пор, пока не появится сообщение о существующей привязке.
Подробнее: Как узнать логин ВК
В качестве последней рекомендации можно лишь упомянуть возможность получения кодов подтверждения, приходящих именно на привязанный номер. Поэтому вы можете попросту произвести какую-то процедуру на сайте и проследить, на какой из доступных вам телефонов пришло сообщение.
Вариант 2: Чужой номер
Узнать собственный номер может быть весьма трудно из-за скрытия информации даже в настройках аккаунта, а вот с чужим телефоном дела обстоят легче. Для этого перейдите на страницу нужного пользователя, разверните раздел «Показать подробную информацию» и найдите блок «Контактная информация».
Именно здесь будут размещены указанные человеком номера, включая мобильный и домашний. К сожалению, гарантировать наличие здесь этих данных, не говоря об их достоверности, невозможно. Если они есть, то указаны были вручную владельцем страницы через параметры сайта. Однако в некоторых случаях соответствуют и привязанному телефону.
Помимо контактной информации, которая если и соответствует действительности, может быть скрыта настройками приватности, узнать телефон можно только напрямую от человека. Любые же другие способы так или иначе находятся вне закона.
Что такое библиотеки DLL, когда им необходимо обновление
Аббревиатура DLL расшифровывается как «Dynamic Link Library», что переводится на русский язык как «Динамически Подключаемая Библиотека» или «Библиотека Динамической Компоновки». Файлы с такими расширениями используются во всех версиях Виндовс практически всеми программами и играми. Они содержат в себе данные об аппаратной и программной конфигурации персонального компьютера и операционной системы, поддержке и совместимости девайсов, наборе команд для корректного функционирования ОС и приложений, а также множество другой полезной для ОС информации.
Папка с DLL-файлами
Появились библиотеки DLL практически в самом начале зарождения операционной системы Виндовс. Изначально они выполняли наиболее часто применяемые функции. Зачем всякий раз программировать тот или иной модуль, если можно просто обратиться к написанной функции, получить результат обработки данных, который потом использовать в своих целях.
К сведению! От динамических библиотек компоновки зависела не только современная ОС Виндовс, но и предшественники семейства NT и Windows 95. Даже OS/2 использует DLL для работы с программами.
Все DLL файлы для Windows 10 x64 являются важными и нужными. Сегодня нельзя создать нормальное рабочее приложение для Виндовс, в котором бы не использовались библиотеки. Они содержат функции Win32 API и массу других полезных модулей для Windows.
По сути, они являются аналогами статических файлов формата LIB, но в отличие от них не подсоединяются к программам напрямую через редактор связей. В приложениях просто ссылаются на местоположение файла, функции которого необходимо использовать. Во время запуска программы библиотека погружается в память полностью, поэтому к ней могут обращаться и другие приложения. Это помогает контролировать объемы файлов запуска EXE, а также сокращать занимаемое место в памяти при запуске разных программных решений.
Важно периодически обновлять операционную систему и библиотеки, так как старые и неактуальные файлы могут повлиять за корректное выполнение программ. Старые приложения могут нормально функционировать на старых обновлениях, но при попытке скачать новую игру или программу пользователь может столкнуться с тем, что она вылетает с ошибкой «Обновите DLL» или «Нет нужной библиотеки»
Далее рассказано, как обновить библиотеку DLL для Windows 7 или 10 x64.
Чтобы DLL не устаревали, необходимо вовремя обновлять ОС
Три метода регистрации DLL в ОС
Если dll файл уже скопирован в соответствующий каталог, выполняем следующие действия:
- Вызываем окно «Выполнить», нажав сочетание клавиш «Win+ R».
- Вводим шаблонную команду «regsvr32 file_name.dll».
- Кликаем «Ок» или «Enter».
Команду можете вводить и в поисковую строку «Пуска».
- Blogger
рис.1. Regsvr32.exe – файл, благодаря которому возможна регистрация библиотеки dll
File_name.dll – имя файла, имеющего формат dll, если он расположен в системном каталоге.
- Blogger
рис.2. Для иных случаев указываем полный путь к библиотеке
- Blogger
рис.3. После этого появится сообщение с текстом об успешной регистрации или с показанной ниже ошибкой
Второй метод зарегистрировать библиотеку dll в windows 7 – ввод аналогичной команды, но в текстовую строку командного интерпретатора.
Вызываем командную консоль с администраторскими привилегиями.
- Blogger
В поиске вводим «cmd»
Открываем контекстное меню файла «cmd.exe» (в «восьмерке» жмем «Win + X») и выбираем соответствующий вариант.
- Blogger
Вводим знакомую команду вида «regsvr32.exe имя_или _путь к_файлу.dll»
Последний, третий метод зарегистрировать dll в Windows 8 и прочих ОС от Microsoft предполагает следование итерациям следующего алгоритма:
- вызываем контекстное меню библиотеки;
- выбираем «Открыть с помощью»;
- жмем «Обзор» и указываем путь к regsvr32.exe (каталог System32 или SysWow64);
- кликаем «Ок».
Таким образом сможем открыть файл dll в windows 7, зарегистрировав его.
Регистрация библиотеки DLL. Что и как делать?
1. Скопируйте скаченну библиотеку в нужную системную директорию. (это либо system32, либо SysWOW64)*
* в какую директорию копировать библиотеки зависит от разрядности приложения. Если вы точно не знаете в какую папку копировать, копируйте в обе J
2. Скачайте архив внизу поста, разархивируйте, запустите файл reg.bat с правами администратора, выберите нужную вам разрядность,нажмите Enter и вставьте имя библиотеки, которую вы скопировали в системную директорию. Все должно пройти успешно и Вы увидите данное сообщение.
Если же увидите такое сообщение
То выберите другую разрядность и попытайтесь снова провести регистрацию. Все должно пройти успешно.
P.S. Если необходимо зарегистрировать библиотеку,которая находится в другом каталоге(не системном), то в имени библиотеки необходимо указать полный путь к библиотеке.
Например C:\Program Files\1Cv77\BIN\V7PLUS.dll
easy-comp.ru
Первый способ регистрации DLL
Перед началом регистрации стоит сделать ремарку и сказать, что способов всего три, но каждый из них практически аналогичен остальным, так что советуем дочитать статью до конца, после чего сделать выбор, каким способом пользоваться. Ну а теперь перейдем непосредственно к тому, как зарегистрировать DLL.
Изначально стоит сказать, что все манипуляции с регистрацией DLL-файла стоит проводить лишь в том случае, когда этот самый файл находится там, где он должен быть. Чаще всего это папка system32. В примере именно эту папку мы и будем представлять.
Сейчас поговорим о самом распространенном способе, как можно зарегистрировать DLL, по крайней мере, он в интернете встречается чаще всего. Он довольно прост, так что у пользователя не должен вызывать проблем.
- Вам нужно попасть в окно «Выполнить». Его можно открыть несколькими путями. В меню «Пуск» пройти по пути «Все программы → Стандартные» и там уже выбрать «Выполнить». Можно также в том же меню «Пуск» совершить поиск с названием утилиты. Но самый простой способ — это нажать клавиши Win+R.
- Когда окно открыто, в поле для ввода нужно прописать команду «regsvr32.exe», после этого указать путь к файлу, который нужно зарегистрировать.
- Осталось нажать лишь кнопку «ОК».
Просим обратить внимание на то, что путь к файлу должен указываться полностью. Начиная с диска C
Например: regsvr32.exe c: windows /system32/openal32.dll.
В этом случае после нажатия кнопки «ОК» есть два варианта развития событий. Первый подразумевает успех, в этом случае вам будет показано соответствующее сообщение. Или неудача, вылетит соответствующее окно.
Это был первый способ, как зарегистрировать DLL, но напоминаем, что их всего три, поэтому двигаемся дальше.
Почему нельзя просто его скачать?
Я бы первым же делом заразил файл, подсунув туда троян, замаскировав его под функцию обращения к какому-нибудь процессу. Рассчитывая на то, что пользователь в спешке запустить любимую программу согласится на всё, пропуская мимо глаз свист антивируса. Поверьте, 5-6 из 10 сайтов в сети так и делают. Их основная задача – принять запрос из поисковой выдачи на скачивание подозрительных (а какими ещё могут быть с точки зрения современных антивирусов и даже современных версий браузеров) файлов, и подсунуть вам. Как работает dll файл вы уже примерно знаете, и какую цепочку действий против вас в вашей Windows он создаст, знает только хакер.
Ещё один вариант – в ответ на ваш запрос вы наткнётесь на чаще всего платную, но очень навязчивую и красочную программу по ремонту системных файлов, функции которой крайне бедны (даже если запущенный после её установки “анализ” показал, что в системе “ну всё очень плохо!”).
Но да ладно: скачали, вирусов нет… На популярном и наиболее часто используемом в этих случаях ресурсе:
https://ru.dll-files.com/
решения не обнаружилось: всё равно ошибка и ничего не работает. Почему? Ответ для внимательных очевиден: вы никогда не задумывались, что Windows обновляет прежде всего? Да-да, скачанный вами файл просто морально устарел, и вам в любом случае придётся искать уже обновлённую его версию. Вобщем, действуйте в этом варианте на свой страх и риск.
Смысл регистрации библиотек и элементов управления
Но, вернемся к нашим библиотекам 🙂
По какой причине, для использования функций DLL в системе непременно требуется их регистрация? Ответ: чтобы система смогла их найти!!
Казалось бы, ну помести ты DLL в рабочую директорию приложения, и вопрос с нахождением решен. Но ведь библиотеки бывают не только локальными, некоторые из них используются совместно множеством приложений, вот как раз для этой ситуации всё и затевалось!! Я думаю, вполне уместно было бы привести аналогию с системной переменной пути (). Как Вы помните, файлы, которые располагаются в директориях, указанных в переменной , можно запускать из командной строки без указания полного пути. В случае же отсутствия директорий в переменной , указанные файлы невозможно будет запустить из произвольного местоположения в операционной системе, командный интерпретатор их попросту «не найдет». По аналогии и библиотеки, которые содержат функции, широко используемые различными программами, должны быть «объявлены» в системе, иначе программы не смогут их «найти». Можно утверждать, что при вызове функции из образа исполняемого файла, загрузчик Windows (менеджер, отвечающий за выделение памяти, подключение различных функций из образов памяти и прч.) должен знать откуда можно подгрузить библиотеку, содержащую требуемую функцию.
Если опираться на историю развития технологии распределенного кода, то можно сделать вывод, что regsvr32 обеспечивает регистрацию как классических библиотек DLL, так и продвинутых их собратьев, содержащих COM-объекты, поскольку со сборками .NET утилита уже не работает. Что же касается вопроса регистрации в системе применительно к библиотеке DLL на низком уровне, то она представляет собой алгоритм действий по модификации различных разделов реестра и каталогов файловой системы, результатом которого является «видимость» библиотеки приложениями. Если библиотека «сторонняя» (не системная), то регистрация библиотеки должна осуществляться на этапе инсталляции приложения, в состав которого она входит и для обслуживания функций которого она предназначается. В большинстве случаев сам процесс регистрации библиотеки выполняется при помощью вызова внешних специализированных системных утилит, либо определенной последовательности специализированных функций Windows API.
Зачастую нет необходимости самостоятельно (вручную) регистрировать DLL, практически всегда это выполняется автоматически при инсталляции компонентов системы/программы. Необходимость в ручной регистрации возникает, как правило, в случае каких-либо ошибок в системе: проблем инсталляции/деинсталляции программ, сбоях, либо в случае самостоятельно разрабатываемых DLL, которые необходимо оттестировать.
Можно рассмотреть простой пример, когда произвольно установленная в системе программа использует функцию из библиотеки, не «объявленной» в системе. В подобной ситуации загрузчик Windows на начальной стадии инициализации виртуального адресного пространства процесса выполняет импорт всех библиотек, требуемых загружаемой на выполнение программе. Если одна из библиотек, прописанных в таблице импорта исполняемого образа, отсутствует, то загрузчик выдает такое вот сообщение об ошибке:
Ошибка сообщает нам о том, что загрузчик образа не смог найти библиотеку , необходимую ей для функционирования. Один из способов устранения данного класса ошибок состоит в повторной инсталляции программы, в ситуации, когда файл искомой библиотеки входит в состав какого-либо дистрибутива, поскольку библиотека инсталлируется автоматически скриптом инсталляции. Если библиотека входит в состав другого пакета, например , то переустановить необходимо именно его. Если же описанными способами ошибку исправить все же не удается, тогда нам на помощь приходит утилита Regsvr32.
Как открыть файл dll в windows 7
Вы можете встретить распространённый тип документа mfc42u.dll, который относится к Microsoft Foundation Class (MFC).
Открыть этот файл dll и подобные ему в windows 7 можно теми же утилитами, что используются для 8 версии, или воспользоваться небольшим редактором исполняемых элементов — Resource Tuner (Рисунок 4).
Рисунок 4. Интерфейс приложения Resource Tuner с открытым файлом формата .dll
Он позволяет изменять различные детали пользовательского интерфейса — строки меню и диалоговых окон, внешний вид курсора, иконок и так далее. В нём ресурсы библиотеки отделены от кода, который остаётся неизменным. Для его редактирования есть используемые в программировании профессиональные редакторы PE Explorer и FlexHex, (в зависимости от вносимых правок).
Resource Tuner предусматривает несколько способов открытия объекта.
Для просмотра и изменения кликните Open File на панели инструментов.
Для выполнения действия в меню — введите команду File>Open.
Или используйте комбинацию клавиш CTRL+O.
Всплывающее окно возле кнопки тулбара предоставит вам список последних открывавшихся элементов. Его можно получить командой File>Recent Files из меню программы, которая пользуется динамически подключаемой библиотекой. Настройка количества данных в списке осуществляется в окне диалога Customize.
[упрощенное] описание процесса регистрации библиотеки
Утилита regsvr32 при помощи системной функции LoadLibrary загружает библиотеку и, в зависимости от того входных параметров , выполняет:
- ищет в библиотеке точку входа и вызывает функцию DllRegisterServer либо DllUnRegisterServer данной библиотеки и смотрит на возвращаемый результат.
- ищет в библиотеке точку входа и вызывает функции DllInstall / DllUnInstall.
Все это говорит в пользу того, что существуют определенные требования к структуре DLL, которую вы хотите регистрировать с помощью regsvr32. Для того, чтобы управляющий элемент можно было зарегистрировать с помощью regsvr32, в DLL должны быть реализованы функции DllRegisterServer, DllUnregisterServer, а при необходимости выполнения специфичных действий еще и функции DllInstall, DllUnInstall. Функции DllRegisterServer / DllUnregisterServer содержат логику, которая фактически и выполняет регистрацию библиотеки в системе, добавляя записи в реестр, требующиеся для управляющего элемента. Функции DllInstall / DllUnInstall служат для выполнения дополнительных действий, которые планирует произвести автор DLL. Поэтому помните, что:
Далеко не все DLL могут быть зарегистрированы при помощи regsvr32!
Давайте посмотрим, что же происходит в случае, когда, к примеру, не определена функция DllRegisterServer:
В этом случае мы видим на экране ошибку: «Модуль ????????.??? загружен, но точка входа DllRegisterServer не найдена». Но, давайте как перейдем, непосредственно, к самому процессу регистрации.
Новый метод
Как мы уже говорили, для регистрации библиотеки используется функция DllRegisterServer(). Функция проверяет 128-битный глобальный идентификатор (GUID, Global Unique ID) всех объектов COM/ActiveX, обнаруженных в библиотеке и последовательно прописывает информацию о них в реестр. Тут мы видим что происходит как бы не регистрация библиотеки, а регистрация объектов в библиотеках. Как мы уже говорили выше, регистрация объектов необходима, поскольку программы работают не с самими файлами DLL/OCX/ACX, а с объектами, представляющими определенный набор интерфейсов. Как мы уже упоминали, для целей регистрации DLL используется раздел реестра , который представляет собой комбинацию разделов:
ветвь при регистрации COM-объектов библиотек для всех пользователей системы;
ветвь при регистрации COM-объектов библиотек только лишь для текущего пользователя;
ветвь для регистрации 32-битных DLL в 64-битных ОС Windows;
Таким образом можно сделать вывод, что процесс регистрации библиотеки заключается в информировании операционной системы о том, что реализация интерфейсов, предоставляемых объектом с определенным идентификатором, располагается в соответствующем файле.
Если вам необходимо поменять расположение библиотеки DLL в системе (например, поменять директорию размещения), то потребуется её перерегистрация.
Старый метод
В дополнение к современному методу работы с COM-объектами, в реестре присутствует еще и ветка . Могу предположить, что она относится к устаревшему методу регистрации общих библиотек DLL, базирующемуся на подсчете количества ссылок на библиотеку. Вероятно, она оставлена для совместимости и предназначена для регистрации библиотек, которые представляют собой устаревший вид библиотек, состоящих из набора функций. В этой ветке имеются параметры типа REG_DWORD, имена которых содержат полный путь к зарегистрированным в системе общим библиотекам (например: ). Значение параметра может варьироваться от 1 до 65535. Дело в том, что значение это — счетчик использования или, как еще называют, количество ссылок. Зачастую этот метод регистрации использовался не-MSI инсталляторами. Каждый раз, когда какой-либо подобный установщик самостоятельно регистрирует в системе библиотеку, которая до этого уже была зарегистрирована кем-либо еще (то есть присутствует в SharedDLLs), он увеличивает счетчик использования на 1, когда же (например, при удалении) библиотека разрегистрируется, то счетчик уменьшается на 1. Подобная логика была реализована в первых версиях Windows для борьбы с таким явлением как «Ад DLL»(DLL Hell). У параметров некоторых библиотек можно наблюдать достаточно большие значения (4096), полагаю, таким образом маркируются критичные для системы библиотеки, и счетчик искусственно увеличен с той целью, чтобы разнообразные пользовательские пакеты при своем удалении, случайно не уменьшили счетчик использования до 0 и не выключили DLL.
Что за RegSvr32?
RegSvr32 – консольная утилита Windows, позволяющая проводить регистрацию (равно как и аннулировать её) у объектов связывания/внедрения. “Под замес”, таким образом, попадают некоторые DLL и ActiveX-управляющие элементы – программируемые компоненты-приложения с интерфейсом на базе OLE, позволяющие включать их в другие программы или приложения. С незапамятных времён они называются ActiveX элементы или “контрольки ActiveX”. Регистрация используется для добавления информации в центральную директорию Windows (то бишь реестр). Информация чаще всего включает в себя “дружественное” название этого компонента, что делает его “более привлекательным” для других приложений, которые могут или будут точно его использовать. Там также есть его полное название и путь к самому файлу, который содержит в себе исполняющий код. Из него Windows и узнаёт о специальных и доступных функциях компонента, а также о том, как эти функции запускать (обращаться за исполнением кода). Нередко регистрация крутится вокруг проблем совместимости с версиями ОС одного производителя, но разных поколений. Ведь информация в реестре Windows всегда будет содержать в себе данные именно о последней версии компонента. Windows за этим, кстати, следит очень трепетно: у компонента версия может только одна. И традиционно, если какая-то функция Windows обнаруживала свою недееспособность, пользователю всегда была доступна процедура регистрации или отмены регистрации сервера таких элементов. На самом деле, такая “деятельность” редко присуща конечным пользователям. Это дела разрабов ПО, но здесь Microsoft явно пошла нам навстречу, оставив возможность изменить отношение системы к какой-то программе вручную. С нашей помощью и помощью RegSvr32.
Возможные ошибки при регистрации
В основном ошибки возникают в нескольких случаях. В первом случае ошибка возникает из-за того, что такой файл уже зарегистрирован или же, в принципе не предназначен для регистрации. Второй вариант подразумевает то, что пользователь скачал с какого-то сайта обычный файл (хорошо, если не нахватал в процессе вирусов), который обладает тем же именем и расширением, что и требуемый, но на самом деле является всего лишь пустышкой.
Есть несколько способов добавить требуемый файл.
- Если вы занимаете программированием и создали свою динамическую библиотеку, то для ее регистрации есть специальные утилиты (regasm.exe).
- В другом случае лучше всего будет выполнить поиск по имени отсутствующего файла и выяснить в какой набор программ он входит. Например, библиотеки, чье имя начинается с d3d, являются часть DirectX и будут добавлены при его установке. Также может быть и с другими данными, нужно будет найти программу, скачать и установить ее целиком, а не отдельные библиотеки из нее. В таком случае утилита выполнит регистрацию сама и все будет работать.
- Можно поместить найденный файл dll в один каталог с исполняемым файлом той утилиты, которая ее требует для запуска. Это так же может сработать.
- В случае запуска игр и утилит, которые были скачаны из интернета, стоит также проверить отчеты своего антивируса. Вполне возможно, что он удалил нужный файл при установке или не дает приложению к нему обратиться. Если так и пользователь доверяет программе, то можно выполнить переустановку или запуск с отключенным антивирусом.
Автокликер для 1С
Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.
1 стартмани
Семейный календарь
Заключение
В заключение следует привести несколько основных моментов, которые могут позволить избежать проблем с регистрацией динамической библиотеки и, в принципе, сделать её не нужной.
- Найдите информацию о том, какой именно функционал выполняется проблемным файлом, и посмотрите с какими системными компонентами он поставляется. Например, файлы, начинающиеся с «d3d», идут в комплекте с «DirectX», который доступен для скачивания на официальном сайте «Microsoft».
- В большинстве случаев, пиратские версии программного обеспечения и игр поставляются с собственными файлами динамической библиотеки, которые необходимы для их работы.
Данное обстоятельство приводит к тому, что файл с расширением «exe» обращается не к копии, которая находится в системном каталоге, а к собственному варианту, что и вызывает ошибку.
Следовательно, для её исправления потребуется просто удалить «несанкционированную копию» из папки с используемым программным продуктом.
Вам так же будет интересно:
- Лучшие бесплатные программы для Windows 10 (Офисные пакеты, Фоторедакторы, Видеоредакторы)
- Бесплатные программы для Windows 10 (очистка и оптимизация ПК, антивирусы, программы для работы с почтой)
- Отсутствует драйвер для сети windows 10 как исправить?
- Какие службы можно отключить в windows 7 для лучшего быстродействия?
- Почему долго загружается компьютер при включении на виндовс 7/10?
- Как повысить скорость обмена данными с жестким диском на windows
- Как проверить оперативную память в windows 10