| Previous | Next |
| CO_E_ERRORINAPP | CO_E_ERRORINDLL |
CO_E_DLLNOTFOUND
Meaning
Windows documents CO_E_DLLNOTFOUND as “DLL for class not found”. In practical terms, it is returned when COM resolves an in-process class registration but cannot locate the DLL named for that class.
Where the failure belongs
This result belongs to COM activation and object lifetime. COM activation is a sequence rather than one registry lookup: identifier resolution, class registration, module or process start, class-factory publication, marshaling, and object lifetime can fail independently. The relevant condition is that COM resolves an in-process class registration but cannot locate the DLL named for that class.
Evidence to collect
- Capture 1: the exact registered module path from the applicable 32-bit or 64-bit registry view.
- Capture 2: file existence, access checks, architecture and deployment package identity.
- Capture 3: loader diagnostics that distinguish a missing top-level DLL from a missing dependency.
Likely causes
- Possible cause 1: the InprocServer32 path points to a file that was removed or moved.
- Possible cause 2: the registration belongs to another architecture or installation root.
- Possible cause 3: environment or side-by-side resolution differs between the working and failing process.
Diagnostic sequence
- Confirm that the observed path matches this condition: COM resolves an in-process class registration but cannot locate the DLL named for that class.
Practical scenario
A 32-bit client reads a stale 32-bit registration left by an old version while the new installer deployed only a 64-bit server; correcting the product installation resolves it.
Correct handling and retry
- Corrective action 1: repair the product through its installer so registration and binaries are restored together.
- Corrective action 2: select the registry view matching the client architecture.
- Corrective action 3: avoid copying a DLL without its dependent runtime and supported registration steps.
Retry guidance. Retry after the registered path is corrected and the module plus dependencies are present; repeated CoCreateInstance calls cannot recreate a missing binary. When retrying, avoid launch duplicate servers, reuse stale proxies or repeat an activation whose side effects are unknown.
Difference from nearby HRESULTs
REGDB_E_CLASSNOTREG means no usable class registration was found; it means registration was found but its DLL could not be located.
Developer and operational guidance
Official Microsoft references
Looking for a different code? Search another status or error code.
