Как COM находит и запускает DLL с поздним связыванием? - PullRequest
2 голосов
/ 21 февраля 2020

Используя VBA, чтобы привести пример вопроса:

Set obj As Object
Set obj = CreateObject("COMlib.ClassA")

Как COM находит с помощью реестра, где находится COMlib.dll?

На какие ключи смотрит COM и в каком порядке можно создать ClassA?

Это связано с другим вопросом

COM & Позднее связывание в Excel / VBA: компонент ActiveX не может создать объект

1 Ответ

2 голосов
/ 21 февраля 2020

В COMlib.ClassA есть запись в HKCR.

Записи в HKCR\CLSID\guid снова содержат информацию о загружаемой DLL и о том, как загрузить и работать с ней (внешний сервер и c .) вкл. введите lib. et c.

Там также могут быть записи в HKCR/TypeLib, когда класс реализован с двойным интерфейсом ...

Когда вы регистрируете DLL, все эти записи создаются.

...