У меня есть VB6 Standard EXE без встроенной библиотеки типов. Я хотел бы сгенерировать сборку взаимодействия из этого исполняемого файла и ссылаться на него из проекта .NET. Это должно позволить мне создавать экземпляры COM-классов, определенных в исполняемом файле из .NET.
Поскольку у меня нет библиотеки типов, я попытался создать IDL с нуля, использовал MIDL для создания библиотеки типов и сгенерировал сборку взаимодействия из библиотеки типов. Я могу сослаться на сборку взаимодействия из моего проекта .NET, но все еще не могу создать экземпляр COM-классов. Я полагаю, что моя сборка взаимодействия не знает об EXE-файле и поэтому не может выполнить код, который я вызываю.
Я уже успешно создал экземпляры COM-классов, определенных в VB6 ActiveX DLL из .NET, где сборки взаимодействия знают ClassID соответствующих COM DLL, содержащих реализацию.
В IDL, который я создаю с нуля, что я должен использовать в качестве UUID для определения библиотеки? Должно ли это как-то относиться к EXE?
[
uuid(WHATUUID-SHOU-LDII-NCLU-DEHEREXXXXXX),
version(1.0),
helpstring("for TLB on EXE")
]
library MyExe { ... }
Эти вопросы близки, но я все еще застрял. Возможно ли то, что я пытаюсь сделать? Я бы предпочел избежать позднего связывания. Спасибо за любую помощь.