Skip to Content

A dynamic link library (DLL) initialization routine failed HRESULT exception: 0x8007045A

An unexcepted error occurs from time to time causing an application to crash while tempting to run a crystal report edition.
If the user restart the app the report may works but the same message can occurs later.

Running the progress application in window admin mode seems to prevent this message, but this is not an option.

This behaviour is not reproducible, it seems random.

The dll concerned seems to be clientdoc.dll (CRforVS_redist_install_32bit_13_0_2)

Retrieving the COM class factory for component with CLSID {F734A321-8381-4FFD-A614-139E8906DC83} failed due to the following error:

A dynamic link library (DLL) initialization routine failed. (HRESULT exception: 0x8007045A)

The registry indicates that this refers to this dll -

[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{F734A321-8381-4FFD-A614-139E8906DC83}\InprocServer32]
@="C:\\Program Files (x86)\\SAP BusinessObjects\\Crystal Reports for .NET Framework 4.0\\Common\\SAP BusinessObjects Enterprise XI 4.0\\win32_x86\\clientdoc.dll" "ThreadingModel"="Both"

Why the initialization for their clientdoc.dll is failing sometimes ?

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Jul 11 at 03:35 PM

    Are you explicitly calling .Dispose() on your ReportDocument objects when you're done with them? If not, you need to be. Much of the SDK is based on COM objects, which .NET does not memory manage well. So, if you're not properly disposing of the objects, they stick around in memory much longer than they should. Sometimes they take up all of what's available to the application and can cause errors like you're seeing.

    -Dell

    Add comment
    10|10000 characters needed characters exceeded

  • Jul 11 at 09:28 PM
    Add comment
    10|10000 characters needed characters exceeded

  • Jul 12 at 03:15 PM

    First, thank you for your answers.


    Dell :

    I thought the destructor was doing the job himself.

    From then, I explicity call the close and dispose methods.

    Don :

    I've just installed SP 23.

    Note that the DLL version seems the same : 13.0.3500.0

    I will come back to you soon.

    -Damien


    Add comment
    10|10000 characters needed characters exceeded

    • 13.0.3500.0 is the assembly number only, it's not the version of the dll. Assembly number reflects the framework it supports, thus 3500 is minimum now where previously it was 2.0.

  • Jul 27 at 01:01 PM

    Hi,

    Altough we've updated to sp23 and explicity called the dispose method, the error still occurs...

    Any more help will be very much appreciate

    Regards,

    Damien

    Add comment
    10|10000 characters needed characters exceeded