2012-03-20 23 views
5

Sono responsabile della manutenzione di un'applicazione C# (VS 2005). Questa applicazione C# chiama una dll ("mydll.dll"). Dovevo apportare alcune modifiche alla DLL in questione.Eccezione da HRESULT: 0x80004002 (E_NOINTERFACE)

Ho il file "mydll.vbp" che è stato scritto in Visual Basic 6.0. Ho apportato le mie modifiche in Visual Studio e, quindi, "reso" mydll "" dall'interfaccia di Visual Basic.

Il problema è che, oggi, ad ogni volta che provo a esempio una classe da "mydll.dll" in modalità debbuger in C#, ho il seguente "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)).

ho cercato di ri -Riferire la DLL in questione ... ma ciò non cambia nulla.

Qualche idea su cosa potrebbe venire?

Mille grazie a tutti coloro che possono aiutare. Sono stati bloccati con questo problema da giorni ormai. Inizia a sentire la pressione ...

+0

Per chiunque altro che inciampa su questo, c'è una grande spiegazione in [questa risposta] (http://stackoverflow.com/a/16943296/210780). – ashes999

risposta

0

Rimuovere tutti gli attributi GUID e "ComVisible" dalla classe, quindi passare l'attributo [assembly: ComVisible (true)] in AssemblyInfo-File a "true".

+0

ho lo stesso problema, questo sembra non risolvere nulla, e non ha alcun senso ... –

1

contrassegnare la classe principale [STAThread] e il vostro problema sarà risolto

+0

Perché? sembra che questo non risolva il problema ... –

+1

@ L.Trabacchin puoi trovare la risposta a "perché" in [questa risposta] (http://stackoverflow.com/a/16943296/210780). – ashes999

Problemi correlati