2012-03-20 628 views
5

我負責維護C#應用程序(VS 2005)。這個C#應用程序調用一個dll(「mydll.dll」)。我需要對有問題的dll進行一些更改。異常來自HRESULT:0x80004002(E_NOINTERFACE)

我有用Visual Basic 6.0編寫的文件「mydll.vbp」。我在Visual Studio中進行了更改,然後從Visual Basic界面「製作」了mydll「」。

的問題是,現在,每次我試圖實例類從「MYDLL.DLL」在debbuger模式在C#中,我有以下的「InvalidCastException的」

Unable to cast COM object of type mydll.ClassFrommydll to interface type mydll._ClassFrommydll'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{384FB79F-B636-4655-9441-8222692AB8AE}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

我試圖重新 - 引用問題的DLL ...但這並沒有改變任何東西。

關於它可能來自哪裏的任何想法?

許多人都感謝yopu誰可以幫忙。現在幾天來一直困擾着這個問題。開始感受壓力...

+0

對於別人誰在這個蹣跚主類,有一個在[這個答案]一個很好的解釋(http://stackoverflow.com/a/16943296/210780)。 – ashes999 2017-04-04 16:48:25

回答

0

刪除類中的所有GUID和「ComVisible」屬性, 然後將AssemblyInfo-File中的[assembly:ComVisible(true)]屬性切換爲'true'。

+0

我有同樣的問題,這似乎沒有解決任何問題,也沒有任何意義... – 2015-02-10 22:47:38

1

標記[STAThread] 和您的問題將得到解決

+0

爲什麼?看起來像這不能解決問題... – 2015-02-10 22:48:16

+1

@ L.Trabacchin你可以在[這個答案](http://stackoverflow.com/a/16943296/210780)找到「爲什麼」的答案。 – ashes999 2017-04-04 16:50:36

相關問題