2014-11-24 65 views
0

我有ac#com可見dll,我想在vb6項目中調用此dll,這也會生成dll.I不使用regasm.exe來執行此操作調用,而不是我爲c#dll使用清單生成,然後創建它的tlb並從vb6調用它。 我在c#dll中創建了兩個接口,一個是Itest,另一個是Itest2,兩個接口都是可見的,並將Guid添加到兩個接口中,有兩個名爲testimp和classimp的類,分別實現了這兩個接口。這兩個類都是可見的,Classinterface鍵入爲none並具有其各自的GUID。如何在vb6庫項目中引用com可見C#dll

問題是,我只能從我的vb6項目而不是classimp類實例化testimp類。

+0

VB6非常**敵視任何進行清單工作的企圖。主要問題是它不直接支持將清單作爲資源嵌入,並且在使用VB6 IDE進行調試時清單無法工作。你唯一的注意就是在你已經調試和測試你的代碼並準備部署之後,才嘗試這樣做。使用mt.exe將清單作爲資源ID#2嵌入到VB6 dll中。並且確實考慮到你*仍然*需要註冊VB6 dll,以便可以通過客戶端程序找到它,所以你實際上並不領先。 – 2014-11-24 11:43:55

回答

1

COM註冊通常是從TLB GUID引用 - 這是在註冊表中註冊

需要注意的是在Windows Vista和向上(IIRC)它也可能部署在一個.manifest的文件的應用程序的本地COM註冊:

+0

你能否詳細說明你答案的最後一行? – raunak 2014-11-24 10:17:37

+0

我認爲你需要先詳細闡述你的目標/麻煩。最後一行是超鏈接,它是不言自明的。在這樣的情況下,我們可以幫助那些堅持解決方案中具體步驟的人。 – sehe 2014-11-24 10:19:05

+0

我編輯了整個問題。希望這可以清楚地解釋我的問題。 – raunak 2014-11-24 10:46:59

0

如果您的問題是每位用戶安裝,請使用Regasm創建regfile,然後編輯regfile以將對HKCR的引用更改爲HKCU \ Software \ Classes。