0

我已经成功使用 Debenu PDFLibrary 一段时间了。我决定将库更新到最新版本(DebenuPDFLibrary64Lite1113.dll)。就在那时,一切都变了。

我按照安装说明进行操作,包括注册 DLL。注册过程没有产生错误。注册表包含如下所示的 CLSID。

我的环境是带有 .NET 4.5.1 框架的 64 位 Windows 8.1 Pro。已安装所有更新。开发环境是使用 VS 2013 Community Edition 的 Visual Basic .NET。

当我尝试像过去一样使用该库时,出现此错误:

由于以下错误,检索具有 CLSID {924F2468-6F4E-4E90-BCD3-A81D43ED8759} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

这是代码:

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

我已经在 StackOverflow 中查看了有关此错误的问题,但无法弄清楚如何使其正常工作。

4

1 回答 1

2

可能是您注册了 64 位版本的 ActiveX,但您的项目设置为 x86(32 位)。

您可以尝试以下测试:

  1. 取消注册 Lite ActiveX 的 32 位和 64 位版本

regsvr32 [此处的路径]\DebenuPDFLibrary64Lite.dll /u regsvr32 [此处的路径]\DebenuPDFLibraryLite.dll /u

  1. 仅注册 64 位版本的 Lite ActiveX

regsvr32 [此处的路径]\DebenuPDFLibrary64Lite.dll

  1. 创建一个 Visual Studio VB.NET 项目并将平台设置为 x86(不是 AnyCPU 或 x64)

  2. 运行应用程序并查看它是否显示相同的错误消息

如果此测试确实显示相同的错误消息,那么您有两个选项:

选项 1:注册 32 位和 64 位版本的 Lite ActiveX

这将允许您在项目中进行任何平台设置(x86、AnyCPU 或 x64)

或者

选项 2:将项目设置更改为 x64

Lite ActiveX 的 32 位版本无需注册,但该应用程序只能在 64 位系统上运行。

于 2015-02-03T21:07:50.093 回答