Question

I inherited maintainance of a complex managed/unmanaged project and I hope I can ask this question in a concise way.....

I have an unmanaged class (C++) that I am trying to access through managed code (C#). This is achieved in the following way:

  • The unmanaged class (Prop) is compiled into an unmanaged dll (PropUnmanaged.dll)
  • PropUnmanaged.dll is registered with regsvr32
    regsvr32 /s PropDLL
  • The classes and types in PropDLL are exposed to managed code using tlbimp
    This creates a managed DLL (PropTypesManaged.dll)
    This dll is not registered with regasm nor gacutil
  • The managed class (MClass) trying to access Prop is implemented in a project that has PropTypesManaged.dll as one of its dependencies
  • The project that implements MClass fails with the error message
    Retrieving the COM class factory for component with CLSID {1EAD9D36-495C-44B2-8559-A6570E1ECE34} failed due to the following error: 80040154

The GUID 1EAD... refers to the GUID of the exposed managed type of the Prop class generated by tlbimp. It is in the registry

Web searches on the error code vaguely suggests that something has gone wrong with the regsvr32 step, but my system reports this step succeeded OK

Where do I start debugging this?

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top