Перейти к содержимому

Как проверить зарегистрирована ли библиотека dll

  • автор:

Просмотр библиотек DLL и исполняемых файлов в окне «Модули» (C#, C++, Visual Basic, F#)

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов (.exe), а также сведения о них.

Окно «Модули» недоступно при отладке SQL и скриптов.

Использование окна модулей

Чтобы открыть окно «Модули» во время отладки, выберите Отладка>Окна>Модули или нажмите клавиши CTRL+ALT+U.

По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.

Отправка символов

В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.

Загрузка символов вручную

  1. В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
    • Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
    • Щелкните Загрузить символы, чтобы загрузить символы вручную.
  2. Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов. Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе Настройка расположения файлов символов и поведения при загрузке.

Изменение параметров поведения при загрузке символов

  1. В окне Модули щелкните правой кнопкой мыши любой модуль.
  2. Выберите Параметры символов.
  3. Выберите Загрузить все символы или выберите конкретные модули.
  4. Нажмите ОК. Изменения вступят в силу при следующем сеансе отладки.

Изменение поведения загрузки символов для конкретного модуля

  1. В окне Модули щелкните правой кнопкой мыши требуемый модуль.
  2. В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.

См. также

  • Прерывание выполнения
  • Просмотр данных в отладчике
  • Указание файлов символов (PDB) и файлов с исходным кодом

список зарегистрированных в системе дллов?

Здравия. 🙂
Помогите с помощью VBScript’a вытащить список зарегистрированных в системе дллов.
Спасибо.

7 ответов

24 апреля 2009 года
3.4K / / 20.09.2006

Смотря какой–HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs или тот,что в VB в диалоге References

24 апреля 2009 года
5 / / 24.04.2009

не знаю где они хранятся

пишеш
regsvr32 dll_name.dll

и дллка регистрируется в ОС.
Так вот, как получить весь список?

а надо для следующего:
есть файл со списком дллов.
1. regsvr32 /u ***.dll
2. проверить все ли ушли.
3. regsvr32 ***.dll

так вот. второй пункт 🙁
ответ команды regsvr32 не подходит
(доверяй, но проверяй)

24 апреля 2009 года
3.3K / / 19.06.2008

Так это вам зарегистрированные COM-интерфейсы нужны. Это перебором. По HKCR\CLSID. Хотя ничто не помешает некоей абстрактной Dll-ке в Dll(Un)RegisterServer делать все что заблагорассудится и регистрироваться совсем не там, но это так, мелочи

24 апреля 2009 года
3.4K / / 20.09.2006

Почему-то так и думал,что именно COM:)
Не буду врать,но где-то у меня вроде был пример,который эти DLL перечислял

Хотите все COM-интерфейсы в системе посбивать,чтоб ни одна программа не работала?;)

27 апреля 2009 года
5 / / 24.04.2009

да, не все, а определенные надо удалить,
затем заменить их на новые и вновь зарегистрировать.

@pixo $oft Был бы признателен за кодик

27 апреля 2009 года
3.4K / / 20.09.2006

Так не проще те,которые надо заменить,разрегистрировать,подменить(так,я понимаю?) и зарегистрировать вновь?

P.S.Насчёт кода:я немного ошибся(память подвела)–этот код перечисляет элементы по ClsId,и то не все,а только те,в которых есть OLE DB provider.Впрочем,этот код легко можно адаптировать под свои нужды
Небольшая проблема–он находится в книге,и он немаленький.Я не совсем щедр на время,чтобы его ещё и набрать:)
Книга Стивена Романа «Visual basic.Библиотека Win32 API»

29 апреля 2009 года
5 / / 24.04.2009

Спасибо за помощ 🙂

Function regfile
Set fso = CreateObject(«Scripting.FileSystemObject»)
Set WshShell = CreateObject(«WScript.Shell»)
WshShell.Run «regedit /e c:\RegDll.txt HKEY_CLASSES_ROOT\CLSID\»,1,true
WScript.Sleep 1000
End Function

Регистрация dll поставщиков служб SSP и AP

После разработки динамической библиотекипакета проверки подлинности поставщика /поддержки безопасности(БИБЛИОТЕКА SSP/AP), содержащей один или несколько пользовательских пакетов безопасности, необходимо зарегистрировать ее. Для этого добавьте имя настраиваемой библиотеки DLL SSP/AP в данные следующего значения реестра:

HKEY_LOCAL_MACHINE\Системы\CurrentControlSet\Управления\Lsa\Пакеты безопасности

Данные для этого значения реестра — это список имен DLL SSP/AP без расширения «.dll». Тип данных для этого списка REG_MULTI_SZ поэтому между каждым именем БИБЛИОТЕКи DLL в списке должен быть пустой символ (\0).

Как правило, dll-файлы SSP/AP хранятся в каталоге %systemroot%/system32. Если это путь к пользовательской библиотеке DLL поставщика служб SSP или AP, не включайте путь как часть имени библиотеки DLL. Однако если библиотека DLL находится в другом пути, добавьте в имя полный путь к библиотеке DLL.

При каждом запуске системы LSA загружает библиотеки DLL SSP/AP из этого списка и выполняет последовательность инициализации, описанную в разделе Инициализация режима LSA.

Регистрация пользовательского пакета безопасности в качестве поставщика общих служб TLS по умолчанию

После разработки пользовательского поставщика поддержки безопасности TLS и его регистрации, как описано выше, необходимо также зарегистрировать его в качестве поставщика общих служб TLS по умолчанию. Для этого заполните имя пакета пользовательского поставщика общих служб данными следующего значения реестра:

HKEY_LOCAL_MACHINE\Системы\CurrentControlSet\Управления\Lsa\Поставщик общих служб TLS по умолчанию

Данные для этого значения реестра — это имя пакета поставщика общих служб, а не имя библиотеки DLL. Тип данных для этого — REG_SZ.

Приложения в пользовательском режиме, использующие «поставщик общих служб TLS по умолчанию», будут использовать зарегистрированный здесь по умолчанию. Это изменение не повлияет на приложения режима ядра или приложения в пользовательском режиме, использующие «Поставщик протокола единой безопасности Майкрософт» или другие имена поставщиков общих служб TLS.

Эти сведения реестра относятся только к библиотекам DLL SSP/AP. Сведения о регистрации поставщиков поддержки безопасности см. в статье Создание и установка поставщика поддержки безопасности. Сведения о различиях между SSP/AP и библиотеками DLL SSP см. в статье SSP/APs и SSP.

REGSVR32 — регистрация или отмена регистрации библиотеки DLL в реестре Windows.

Модель многокомпонентных объектов ( C omponent O bject M odel — СОМ ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п. и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером). В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере. Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL. Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:

HKLM\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек для всех пользователей системы;

HKCU\SOFTWARE\Classes\CLSID — при регистрации COM-объектов библиотек только лишь для текущего пользователя;

HKLM\SOFTWARE\Wow6432Node\Classes\CLSID — для регистрации 32-битных DLL в 64-битных ОС Windows;

При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта. GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID . GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:

При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта. Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение. Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe , имеющейся во всех версиях операционных систем семейства Windows .

Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe :

— 64-разрядная версия в каталоге %systemroot%\System32 (обычно — C:\Windows\System32)

— 32-разрядная версия в каталоге %systemroot%\SysWoW64 (обычно – C:\Windows\SysWoW64)

Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).

При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:

Подсказка по использованию regsvr32

Формат командной строки REGSVR32:

Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл

/u — — вызывает DllUnInstall, отменяет регистрацию сервера

/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;

/n — не вызывает DllRegisterServer; может использоваться с ключом /I;

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

Примеры использования regsvr32.exe :

regsvr32 /u «C:\Program Files\7-Zip\7-zip32.dll» — отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:

Подсказка по использованию regsvr32

Для подавления вывода сообщения, используется параметр /s :

regsvr32 /u /s «C:\Program Files\7-Zip\7-zip.dll»

В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:

regsvr32 «C:\Program Files\7-Zip\7-zip.dll»

Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32 :

Или без использования переменных окружения:

В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe . Программа не требует установки в системе, имеет небольшой размер и позволяет:

— Получить в удобном виде список всех зарегистрированных в системе объектов.

— Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL.

— Выполнить регистрацию или отмену регистрации выбранных объектов.

— Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL.

— Зарегистрировать или перерегистрировать указанный файл.

RegDLLView – работа с регистрацией и отменой регистрации DLL

Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.

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

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