I'm in charge of the maintenance of a C# application (VS 2005). This C# applications calls a dll ("mydll.dll"). I needed to make a few changes on the dll in question.
I have the file "mydll.vbp" that was written in Visual Basic 6.0. I made my changes in Visual Studio and, then, "made "mydll"" from the Visual Basic interface.
The problem is that, now, at each time I try to instance a class from "mydll.dll" in debbuger mode in C#, I have the following "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)).
I tried to re-reference the dll in question ... but that does not change anything.
Any idea on what it could come from ?
Many many thanks to all of yopu who can help. Have been stuck with this problem for days now. Start to feel the pressure ...
mark the main class [STAThread] and your problem will be solved
I ran into this exact problem using the IBM Dll's.
Fixed the issue for me with all COM interfaces being usable and the exception cleared
Remove all GUIDs and "ComVisible" attributes from the class, then switch the [assembly: ComVisible(true)] attribute in the AssemblyInfo-File to 'true'.