Меню Рубрики

Как зарегистрировать 32 разрядную dll в windows 7 64 bit

Регистрируем файл DLL в ОС Windows

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

Варианты решения проблемы

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

Способ 1: OCX/DLL Manager

OCX/DLL Manager – это маленькая программа которая может помочь зарегистрировать библиотеку или файл OCX.

Для этого вам нужно будет:

  1. Нажать на пункт меню «Register OCX/DLL».
  2. Выбрать тип файла, который будете регистрировать.
  3. При помощи кнопки «Browse» указать местоположение DLL.
  4. Нажать на кнопку «Register» и программа сама зарегистрирует файл.

OCX/DLL Manager также умеет отменять регистрацию библиотеки, для этого понадобится выбрать в меню пункт «Unregister OCX/DLL» и в последствии проделать все те же операции, как и в первом случае. Функция отмены может вам понадобиться для сравнения результатов при активированном файле и при отключенном, а также в процессе удаления некоторых компьютерных вирусов.

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

Способ 2: Меню «Выполнить»

Можно зарегистрировать DLL, используя команду «Выполнить» в стартовом меню операционной системы Windows. Для этого нужно будет произвести следующие действия:

  1. Нажать клавиатурную комбинацию «Windows + R» или выбрать пункт «Выполнить» из меню «Пуск».

Ввести имя программы, которая будет регистрировать библиотеку — regsvr32.exe, и путь, по которому размещен файл. В итоге должно получиться так:

где dllname — это имя вашего файла.

Этот пример подойдёт вам в том случае, если операционная система установлена на диск С. Если она находится в другом месте, то нужно будет поменять букву диска или воспользоваться командой:

В таком варианте программа сама находит папку где у вас установлена ОС и запускает регистрацию указанного DLL файла.

В случае с 64-разрядной системой у вас будет две программы regsvr32 — одна находится в папке:

Это разные файлы, которые используются раздельно для соответствующих ситуаций. Если у вас 64-битная ОС, а файл DLL 32-битный, тогда сам файл библиотеки должен быть помещен в папку:

и команда будет выглядеть уже так:

  • Нажмите «Enter» или кнопку «OK»; система выдаст вам сообщение о том, успешно или нет была зарегистрирована библиотека.
  • Способ 3: Командная строка

    Регистрация файла через командную строку не сильно отличается от второго варианта:

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

    Перед вами появится окно, в котором нужно будет вводить те же команды, что и во втором варианте.

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

    Способ 4: Открыть с помощью

    1. Откройте меню файла, который будете регистрировать, нажав по нему правой кнопкой мыши.
    2. Выберите «Открыть с помощью» в появившемся меню.

    Нажимаете «Обзор» и выберете программу regsvr32.exe из следующей директории:

    или в случае, если вы работаете в 64-битной системе, а файл DLL 32-разрядный:

  • Откройте DLL с помощью этой программы. Система выдаст сообщение об успешной регистрации.
  • Возможные ошибки

    «Файл не совместим с установленной версией Windows» — это означает, что вы, скорее всего, пытаетесь зарегистрировать 64-разрядную DLL в 32-битной системе или наоборот. Воспользуйтесь соответствующей командой, описанной во втором способе.

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

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

    Источник

    Regsvr32

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

    История распределенного кода

    Не лишним тут, я думаю, будет познакомиться с историей распределенного кода, что даст нам понимание причин возникновения и развития динамических библиотек. А это, в свою очередь, даст очевидное представление о том, какой функционал несет в себе средство regsvr32 и для чего оно, собственно, предназначается.

    Линейное программирование

    На заре развития языков программирования, при создании (разработке) программ использовался так называемый линейный подход, который заключался в том, что код писался/выполнялся «сверху-вниз», в четкой последовательности от начала к концу. Но как только человек научился писать код чуть сложнее, чем простой вывод фразы «Hello, World!», перед ним тут же встало несколько проблем, которые показали, что подход имеет очевидные недостатки:

    • исходный код необходимо было копировать из старого проекта в новый;
    • копирование старого кода приводило к ошибкам, путанице, нестыковкам, необходимости исправления и подгонки под новый проект;

    Процедуры (функции)

    Стояла очевидная проблема разделения, а так же многократного использования кода. Поэтому, по мере развития технологий программирования появилось процедурное (функциональное) программирование, которое было основано на том, что области кода выделялись в отдельные блоки под названием функции (процедуры), к которым имелась возможность многократного обращения (вызова) из любого места программы. Это существенно упростило архитектуру приложения, решило важную проблему дублирующегося кода, поскольку теперь вместо того, чтобы программе использовать повторяющиеся участки кода на протяжении всего процесса выполнения, проще разместить его в отдельной процедуре (функции) и многократно вызывать [по мере необходимости]. Тем не менее, данный подход требовал доработки, поскольку:

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

    Оверлеи

    В условиях дороговизны оперативной памяти и отсутствия у многих операционных систем того времени (MSDOS) механизма виртуализации адресного пространства процесса (виртуальной памяти), обеспечивающего достаточное адресное пространство для приложений, появилась необходимость загружать в ограниченное пространство [дорогой] физической памяти много превосходящие по размеру код/данные приложений. Следствием всего этого явилось разбиение кода/данных программы на обособленные модули, получившие название оверлеев (overlay). Данный механизм непрямую не связан с разделением кода, тем не менее мы о нем упомянем, как о существенной вехе в развитии механизмов разделения кода.

    Прерывания

    Первой попыткой решения проблемы распределения кода был механизм программных прерываний, который позволял создавать (размещать в микрокоде BIOS) и вызывать сервисы, доступные любым операционным системам и программам. Таблица прерываний включала 255 векторов (адресов), каждый из которых задавал процедуру обслуживания определенного прерывания. Данный сервис мог лешгко программироваться пользователями, то есть любая программа могла [пере]назначить одно из доступных программных прерываний, предоставив, таким образом, общесистемный сервис. И не смотря на все положительные стороны подобного подхода, он имел и ряд серьёзных недостатков:

    • Фиксированное количество сервисов, ограниченное размером таблицы векторов прерываний (255);
    • Отсутствие обработки исключительных ситуаций.
    • Отсутствие системы безопасности;
    • Обособленный синтаксис, несовместимости с синтаксисом языков высокого уровня (необходимость оперировать низкоуровневыми регистрами);
    • Отсутствие контроля типов и корректности данных;

    Динамические библиотеки

    Дальнейшее развитие данной концепции (а так же развитие ОС) привело к появлению динамически загружаемых библиотек (называемых упрощенно динамическими библиотеками, DLL). Отличительной особенностью было то, что обращение к функционалу этих библиотек могло осуществляться из кода на любых языках и из любых средств разработки [в рамках операционной системы]. На механизме динамических библиотек построен весь программный интерфейс (WinAPI) операционных систем Mirosoft Windows, поэтому любое API, любой сервис, так или иначе базируются на DLL. Характерная особенность динамической библиотеки заключается в том, что она может использоваться сразу несколькими приложениями, а система обеспечивает присутствие в памяти всего-лишь одного экземпляра [кода] динамической библиотеки для всех приложений, которые содержат ссылки на функции данной библиотеки. DLL имели ряд выраженных недостатков:

    • при загрузке динамической библиотеки [в адресное пространство процесса] использовалось лишь её символическое имя, поскольку отсутствовал механизм устойчивой идентификации необходимых библиотек, соответственно:
      • в подгруженной библиотеке [сторонней/не той версии] мог содержаться код, разрушающий структуры данных и кода вызывающего приложения.
      • подгружаемая библиотека [сторонняя/не той версии] могла использовать контекст безопасности основного приложения для получения доступа к ресурсам, к которым в обычных условиях доступа у нее нет.
    • не проверяется информация о типах параметров функции;
    • не проверяется корректность передаваемых параметров функции;

    Компонентная объектная модель (COM)

    Следующим этапом развития концепции разделяемого кода стало появление компонентной объектной модели (COM, Component Object Model). COM обеспечивал возможность разделять код на отдельные независимые компоненты. Упомянутые компоненты, в отличие от предыдущих своих собратьев, подключались уже не по имени файла, а при помощи специального глобального идентификатора (GUID). GUID ни что иное как 128-битный глобальный идентификатор (GUID, Global Unique ID), идентифицирующий конкретный объект класса библиотеки. Каждый компонент определялся в системе собственным уникальным идентификатором, а в системе хранилась единая база информации по компонентам, в которой содержалась вся информация: начиная от имени файла, в котором расположен сам компонент, и заканчивая сетевыми настройками.
    База COM хранится в реестре, в разделе HKEY_CLASSES_ROOT :

    • HKEY_CLASSES_ROOT\CLSID — GUID идентификаторов классов компонентов;
    • HKEY_CLASSES_ROOT\Interface — IID идентификаторов интерфейсов (для реализующих их компонентов);
    • HKEY_CLASSES_ROOT\TypeLib — Информация о файлах, в которых хранятся библиотеки;

    Причем сам HKEY_CLASSES_ROOT представляет собой комбинацию разделов HKCU\Software\Classes (для текущего пользователя) и HKLM\Software\Classes (для машины в целом).

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

    Источник

    Как зарегистрировать DLL: три способа

    Порой при попытке запустить игру или приложение на компьютере выдается ошибка, что данный DLL-файл не найден. Факт в том, что этот файл может находиться у вас на компьютере, но он попросту не зарегистрирован. В этой статье мы как раз поговорим о том, как зарегистрировать DLL в Windows 7. Сделаем акцент именно на седьмой версии Windows, но, вполне возможно, что DLL зарегистрируется и на других версиях. Итак, приступим.

    Первый способ регистрации DLL

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

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

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

    1. Вам нужно попасть в окно «Выполнить». Его можно открыть несколькими путями. В меню «Пуск» пройти по пути «Все программы → Стандартные» и там уже выбрать «Выполнить». Можно также в том же меню «Пуск» совершить поиск с названием утилиты. Но самый простой способ — это нажать клавиши Win+R.
    2. Когда окно открыто, в поле для ввода нужно прописать команду «regsvr32.exe», после этого указать путь к файлу, который нужно зарегистрировать.
    3. Осталось нажать лишь кнопку «ОК».

    Просим обратить внимание на то, что путь к файлу должен указываться полностью. Начиная с диска C. Например: regsvr32.exe c: windows /system32/openal32.dll.

    В этом случае после нажатия кнопки «ОК» есть два варианта развития событий. Первый подразумевает успех, в этом случае вам будет показано соответствующее сообщение. Или неудача, вылетит соответствующее окно.

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

    Второй способ регистрации DLL

    Второй способ практически ничем не отличается, лишь местом действий. Вам нужно попасть в утилиту «Командная строка», сделать это можно также несколькими способами: или в меню «Пуск» в папке стандартные открыть одноименную программу, или вызвав окно «Выполнить», ввести команду «cmd». Решать только вам.

    Теперь перед вами открыта командная строка, в ней нужно ввести абсолютно такие же данные, которые вводились в первом способе. То есть изначально указать программу, которая будет работать с dll (regsvr32.exe), а затем путь к файлу.

    Как видим, второй способ, как зарегистрировать DLL, практически ничем не отличается от первого, о чем и говорилось в начале статьи. Но вот третий имеет более заметные отличия, поэтому перейдем к нему.

    Третий способ регистрации DLL

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

    Вам необходимо всего-навсего открыть DLL-файл с помощью regsvr32.exe. Вот как это сделать:

    1. На нужном DLL-файле нажмите ПКМ.
    2. В меню выберите «Открыть с помощью. «.
    3. В окошке найдите и нажмите кнопку «Обзор».
    4. Проложите путь к файлу regsvr32.exe, он находится в папке System32, которая находится в папке Windows на диске C.
    5. Нажмите «Открыть».

    Вот и все, теперь вы знаете аж три способа, что нужно делать, когда появляется ошибка DLL.

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Как запустить центр обновления для windows 7 через диспетчер задач
  • Как запустить центр обновления windows 10 через командную строку
  • Как запустить флешку через биос на ноутбуке asus windows 8
  • Как запустить файл mkv через проигрыватель windows media
  • Как запустить учетную запись администратора windows 7