我正在尝试在 Visual C# 2008 Express Edition 项目中使用 Acrobat 应用程序间通信 (IAC) 在 C# 应用程序中打开 PDF 文档。
执行以下代码时出现异常:
CAcroPDDoc pdDoc = new AcroPDDocClass();
异常报告特定 CLSID 的 COM 类工厂失败,错误为 80040154。在 MSDN 上查找 winerror.h 中的错误代码,错误与未注册的类有关。
我尝试使用 regsvr32 注册 Interop.Acrobat.dll,但这无法正常工作(找不到入口点 DllRegisterServer)。
我已经尝试了 Acrobat 9 SDK 附带的示例 C# 项目(BasicIacCS - 有一个名为 BasicIacCS.suo 的 visual studio 项目,它导入到 c# Express 中没有任何错误,但失败并出现相同的异常)。
我是不是犯了一些根本性的错误? (我是 Windows/.NET 编程新手)
这在速成版下是否可行,还是我应该升级到 Visual Studio?
进一步调查问题,当我对我的应用程序(.exe 文件)执行 ILDASM 时,被提示的 CLSID 是可用的 - 它是我试图访问的 AcroPDDoc 类的 CLSID。注册表中没有此类及其关联的 CLSID。 我只安装了 Acrobat 阅读器——不是完整版。是否需要完整版的 Acrobat 才能访问 COM 接口(interface)? (我只有 Acrord32.dll,系统上没有 Acrobat.dll)。 我在不同的 Vista 机器上尝试了相同的程序,并卸载/重新安装了 Arobat 阅读器,结果相同。
最佳答案
问题可能出在未注册的主要 Acrobat dll 中,而不是 interop dll。
尝试重新安装 Acrobat,或注册 Acrobat DLL。
关于c# - Visual c# Express Edition - 无法让 Acrobat pdf 阅读器工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063111/