i have create a c++ DLL with COM interface with Visual Studio 2013. The DLL get's installed along with registration. In the Ole Object Viewer, i can see typelibrary of this DLL with all exported functions. regsvr32 completes without any error.
Just within C# i can't use, because creation fails with error 0x80040154 - class not found or not registered.
It is not a platform issue. The 64bit version is in system32 and the 32bit version in syswow64 and they are registered there and typelibary information in OLE Object Viewer confirms this.
But the class is not listed in the OLE Object Viewer tree.
Habe noe idea what's missing or wrong.
More over, i have a simliar VC++ project and this COM/DLL can be seen in the view in the OLE Object viewer. It is compiled, linked and installed in exactly the same manner.
I already compared all Compiler, Linker and MIDL settings, checked the .idl file in the projects, the .rgs files... all seems to be the same, except different names and guids.
So it is really strange: One is shown as COM object in the tree of OLE Object viewer and can be used in C# program, the other not.
Please note: There is no compiler error in C# project using this DLL/COM. There is a runtime error on creation 0x80040154.
Summary: i have to COM/DLL, both visual studion projects, deployed in the same manner, the one can be seen in the OLE object tree and can be used in C#, the other not.
Are there any key points i could check and which are required for a successfull listing as OLE COM object ?
PS: The only difference is the MSIL compiler version indicated in the type library view: The good COM/DLL has MSIL 7.xxx the bad one 8.xxx but i don't know where at all to selected MSIL compiler. Both DLL/COM are built by VS2013