80040154 Class Not Registered (Debenu PDF Library)

0

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.

vb.net
dll
runtime-error
.net-4.5
windows64
asked on Stack Overflow Jan 29, 2015 by Ebassador • edited Jan 29, 2015 by Ebassador

1 Answer

2

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.

answered on Stack Overflow Feb 3, 2015 by zacharpali

User contributions licensed under CC BY-SA 3.0