我遇到了一些我正在編寫的.NET組件的問題,這些問題旨在暴露給COM。COM互操作性和繼承
要公開的類從基類繼承,這兩個類都將ComVisible屬性設置爲true。基類沒有什麼特別 - 它包含2個屬性,我用它來幫助抽象一些數據庫代碼。
我可以註冊程序集並鍵入lib就好了。然而,當我試圖將類實例,我得到以下異常從被叫拋出:
錯誤IDispatch.Invoke():0x80020101
我決定來調試它在CScript.exe中,我得到了同樣的錯誤。所以我重寫了沒有基類的類,現在我可以創建沒有問題的實例。
爲了公開從同一命名空間中的另一個.NET類繼承的.NET類,我需要做額外的工作嗎?
基類是否在同一個DLL中? – Stu 2012-02-10 22:01:01
如果使父類不可見,會發生什麼情況。 – Chriseyre2000 2012-02-10 22:01:54
有一件令人沮喪的事情是,在EventViewer中似乎沒有任何日誌信息;它剛剛死亡。另外,我在第一次嘗試時沒有在基類中指定ComVisible,它仍然導致相同的錯誤(它實際上在VS2010調試器中顯示爲「未知錯誤」,但我知道基於應用程序調用拋出的異常的內容該類) – 2012-02-10 22:17:08