2012-03-20 29 views
5

Zajmuję się obsługą aplikacji C# (VS 2005). Ta aplikacja C# wywołuje dll ("mydll.dll"). Musiałem wprowadzić kilka zmian w dll.Wyjątek od HRESULT: 0x80004002 (E_NOINTERFACE)

Mam plik "mydll.vbp", który został napisany w Visual Basic 6.0. Dokonałem zmian w Visual Studio, a następnie "wykonałem" mydll "" z interfejsu Visual Basic.

Problemem jest to, że teraz, w każdej chwili próbuję przykład klasę z „mydll.dll” w trybie debbuger w C# Mam następujący „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)).

starałem się ponownie -referencji dll pytanie ... ale to nic nie zmienia.

Każdy pomysł na to, z czego może pochodzić?

Wiele podziękowań dla wszystkich yopu, którzy mogą pomóc. Utknąłem z tym problemem już od wielu dni. Zacznij odczuwać ciśnienie ...

+0

Dla każdego, kto natyka się na tym, że to świetny wyjaśnienie w [tej odpowiedzi] (http://stackoverflow.com/a/16943296/210780). – ashes999

Odpowiedz

0

Usuń wszystkie identyfikatory GUID i atrybuty "ComVisible" z klasy, , a następnie zmień atrybut [assembly: ComVisible (true)] w pliku AssemblyInfo na "true".

+0

Mam ten sam problem, to chyba nic nie rozwiązuje, ani nie ma sensu ... –

1

zaznaczyć główne klasy [STAThread] i problem zostanie rozwiązany

+0

Dlaczego? wygląda na to, że to nie rozwiązuje problemu ... –

+1

@ L.Trabacchin można znaleźć odpowiedź na pytanie "dlaczego" w [tej odpowiedzi] (http://stackoverflow.com/a/16943296/210780). – ashes999

Powiązane problemy