首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AxAcroPDF - Vista64类未注册错误

AxAcroPDF - Vista64类未注册错误
EN

Stack Overflow用户
提问于 2008-09-15 21:28:18
回答 3查看 12.3K关注 0票数 8

我们有一个用C#编写的WinForms应用程序,它使用AxAcroPDFLib.AxAcroPDF组件加载和打印PDF文件。已在Windows XP中正常工作,没有任何问题。我已经将我的开发环境迁移到Vista64位,现在应用程序将无法运行(在Vista64上),除非我删除AxAcroPDF组件。当应用程序运行时,我得到以下错误:

"System.Runtime.InteropServices.COMException:类未注册(来自HRESULT的异常: 0x80040154 (REGDB_E_CLASSNOTREG))。“

我在Adobe论坛上被告知,错误的原因是他们没有64位版本的AxAcroPDF ActiveX控件。

有什么办法可以解决这个问题吗?例如,我可以自己将32位ActiveX控件转换为64位控件吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-16 06:39:31

您不能自己将Adobe的ActiveX控件转换为64位,但您可以通过将平台目标设置为x86来强制您的应用程序在32位模式下运行。

有关您的Visual Studio版本的说明,请参阅Issues When Using Microsoft Visual Studio 2005的1.44节

票数 14
EN

Stack Overflow用户

发布于 2008-09-17 17:38:36

.Net Framework1.1总是以32位CPU为目标,而.Net Framework2.0和更高版本则可以以32位或64位为目标,这取决于由Visual Studio IDE的“平台目标”选项更改的程序清单的processorArchitecture属性。使用默认选项'Any CPU‘时,会根据平台编译IL代码,但如果平台是64位,则对AxAcroPDF 32位组件的COM调用当然会失败。只需将EXE重新编译为目标32位平台即可。这在Vista64位的WOW64仿真器中工作得很好。

票数 6
EN

Stack Overflow用户

发布于 2008-09-16 06:43:36

使用动态链接库隔离,适用于每个32位COM+应用程序。欲了解更多信息,请访问:http://support.microsoft.com/kb/281335

使用此解决方案,您可以将32位COM+应用程序隔离到一个单独的32位进程中。

64位应用程序在以下位置搜索已安装的COM+对象: HKLM\Software\Classes,但32位应用程序使用HKLM\Software\WOW6432\Classes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档