2013-04-02 8 views
0

В проекте, над которым я работаю, есть куча COM-DLL.Как я могу увидеть версию COM DLL, зарегистрированную в Windows

Существует сценарий установки, который автоматически регистрирует эти DLL для использования в другом проекте. В последнее время в коде есть ошибка, из-за которой программа отключается необъяснимо. Bisect не решила проблему (старый код, который, как было известно, теперь работает с одним и тем же симптомом)

Я подозреваю, что сценарий удаления не отменил регистрацию всего или что-то подобное с рабочей средой, и я не имеют запасной, чистой машины, чтобы проверить мою теорию. Есть ли способ узнать, что такое DLL, зарегистрированная в Windows, например, их имена, версия, GUID и т. Д.?

+1

У вас есть доступ к скрипту? Проверьте скрипт и посмотрите, какие DLL зарегистрированы и с какого пути (например, RegSvr32 ... Name.DLL), перед регистрацией он должен выполнить незарегистрированный (RegSvr32 -u). После проверки в regedit в пути HKEY_CLASSES_ROOT \ CLSID \ по имени DLL и проверьте, правильно ли был зарегистрирован путь, там вы найдете CLSID и сможете искать весь регистр по CLSID, чтобы просмотреть используемую версию, модель потоковой передачи и т. Д. – ALZ

+0

У меня нет скрипта (в любом случае, не в читаемой форме), но трюк regedit работает. Благодаря! –

+0

пойдите в физическое местоположение по пути, указанному в реестре, и проверьте версию свойств DLL-файла. Если у вас есть другая версия и вы хотите использовать ее, необходимо зарегистрировать (RegSvr32 -u [DLL Path]) и заменить DLL-файл и перерегистрировать его (RegSvr32 [DLL Path]) – ALZ

ответ

2

Вы можете использовать инструмент под названием OleView, который поставляется вместе с окнами SDK. Например. это может быть в разделе «Файлы программы \ Microsoft SDK \ Windows \ v6.0A \ bin»

Или вы можете просто найти свой GUID CLASS в реестре под HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes.

+0

Поиск через regedit решил это. Благодаря! –

Смежные вопросы