I have a COM dll that is working fine as an in-proc server and I install it in Component Services COM+ Applications. Now when I try to CoCreate it from my client app, I get HRESULT 0x8007007e "The specified module could not be found". What could be causing this?
views:
225answers:
4Please elaborate on the different circumstances between working and not working.
I suspect there is a module that is depended on that is not found - some dll that is not in a search path for example.
HArd to tell . I rember that usually I need to register com component with something like that:
Regsvr32 my_com.dll
Also you may verify that the path to your DLL is in PATH envornnemnt variable (Is it PATH or another variable?). Or copy it in the folder for your application.
Verify also your user's rights on this DLL.
Module not found means that the COM system tried to load a module/dll (probably referred to by a GUID) that wasn't found, either because it wasn't registered, or because the dll was not present at the registered path.
I used to get this error when trying to create an object "A" from e.g. A.dll, which called into another dll (B.dll) that wasn't registered.
A tool you may be interested in is process monitor, which tells you exactly what register keys were looked for by what process, with failure and success codes, and even let you see it's call stack.
The dll was registered on a ClearCase dynamic view, similar to a mapped drive, not available to COM+. Solution was to move the dll and the proxy/stub dll to a local drive and register them there.