我需要開發一些應該可以從託管C++(C++/CLI)從VB6調用的類。從託管C++(C++/CLI)生成COM可見程序集
我已經開發了第一個C#中的示例,並且我可以通過COM使用該組件而不會出現問題 僅使用設置「註冊COM互操作」和「使程序集COM可見」(並使用屬性[ClassInterface(ClassInterfaceType .AutoDual)]使方法在VB6中可用。
之後,我嘗試將示例翻譯成C++/CLI而沒有成功,我用[ClassInterface(ClassInterfaceType.AutoDual)]屬性創建了同一個類。設置了「Embedded IDL」設置來指定輸出TLB,但TLB不是自動生成的。如果我在生成的DLL上使用tlbexp util,我會得到一個可以在VB6中導入的tlb,但是當我嘗試創建一個實例我得到一個「ActiveX組件無法創建對象( 429)「
我還需要做些什麼來讓項目運行?
在此先感謝。
我正在用tlbexp自動註冊程序集,對不對?/tlb選項被報告爲編譯器和鏈接器無法識別。你確定嗎? – 2010-10-29 16:09:24
不,tlbexp只生成一個類型庫,沒有任何內容被註冊。/tlb選項用於Regasm.exe,而不是編譯器或鏈接器。它讓我非常困惑,因爲你沒有從我的帖子中得到。 – 2010-10-29 16:19:55
它在這裏有點晚了。我已經重讀了你的文章,並且我和你一樣困惑:) – 2010-10-29 16:24:34