我有一個沒有嵌入類型庫的VB6標準EXE。我想從該可執行文件生成一個互操作程序集,並從.NET項目中引用它。這應該允許我從.NET中實例化可執行文件中定義的COM類。.NET項目的無參考類型COM EXE
由於我沒有類型庫,我嘗試從頭開始創建IDL,使用MIDL生成typelib,並從typelib生成了一個interop程序集。我可以從我的.NET項目中引用互操作程序集,但仍不能實例化任何COM類。我相信我的互操作程序集不知道EXE,因此實際上不能執行我調用的代碼。
我已經在.NET中成功實例化了VB6中定義的COM類ActiveX DLL,其中互操作程序集知道包含實現的相應COM DLL的ClassID。
在我從頭開始創建的IDL中,我應該使用什麼作爲庫定義的UUID?這是否應該以某種方式引用EXE?
[
uuid(WHATUUID-SHOU-LDII-NCLU-DEHEREXXXXXX),
version(1.0),
helpstring("for TLB on EXE")
]
library MyExe { ... }
Thesequestions接近,但我仍然堅持。我正在嘗試做什麼?我寧願避免遲到的約束。謝謝你的幫助。
+1我99.9%確定類型庫*總是*嵌入VB6 ActiveX EXE – MarkJ
我剛剛編輯我的問題,以澄清它是VB6標準EXE,而不是ActiveX EXE。當我打開EXE時,Visual Studio確實沒有顯示類型庫。 – pizza247
你試圖做的事情是不可能的,只有一個ActiveX EXE可以被客戶端程序使用。我無法猜測你可能用作IDL源的東西。 –