vb.netdllruntime-error.net-4.5windows64

80040154 Class Not Registered (Debenu PDF Library)


I have been using the Debenu PDFLibrary successfully for some time. I decided to update the library to the latest version (DebenuPDFLibrary64Lite1113.dll). That's when everything went sideways.

I followed the instructions for installing, including the registering of the DLL. The registration process did not produce an error. The registry contains the CLSID shown below.

My environment is 64 bit Windows 8.1 Pro with .NET 4.5.1 framework. All updates are installed. The development environment is Visual Basic .NET using VS 2013 Community Edition.

When I try to use the library as I have in the past, I get this error:

Retrieving the COM class factory for component with CLSID {924F2468-6F4E-4E90-BCD3-A81D43ED8759} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Here is the code:

Try
    PDFDoc = New PDFLibrary(STR_PDFLibrary)
Catch ex As InteropServices.COMException
    _TerminalErrors.Add(String.Format("Error loading PDFLibrary{0}{1}{0}{2}", vbCrLf, ex.Message, ex.StackTrace))
     Exit Function  
End Try

I've looked at the questions on this error in StackOverflow but cannot figure out the way to get this to work.


Solution

  • It might be that you registered the 64-bit edition of the ActiveX but your project was set to x86 (32-bit).

    You can try the following test:

    1. Unregister both 32-bit and 64-bit versions of the Lite ActiveX

    regsvr32 [path here]\DebenuPDFLibrary64Lite.dll /u regsvr32 [path here]\DebenuPDFLibraryLite.dll /u

    1. Register only the 64-bit version of the Lite ActiveX

    regsvr32 [path here]\DebenuPDFLibrary64Lite.dll

    1. Create a Visual Studio VB.NET project and set the platform to x86 (not AnyCPU or x64)

    2. Run the app and see if it shows the same error message

    If this test does show the same error message then there are two options for you:

    Option 1: Register both the 32-bit and 64-bit versions of the Lite ActiveX

    This will allow you to have any platform setting in your project (x86, AnyCPU or x64)

    or

    Option 2: Change the project settings to x64

    The 32-bit version of the Lite ActiveX won't have to be registered but the application will only work on 64-bit systems.