dav*_*ywc 8 64-bit adobe activex axacropdf
我们有一个用C#编写的WinForms应用程序,它使用AxAcroPDFLib.AxAcroPDF组件来加载和打印PDF文件.在Windows XP中一直没有任何问题.我已将我的开发环境移至Vista 64位,现在应用程序将无法运行(在Vista 64上),除非我删除了AxAcroPDF组件.应用程序运行时出现以下错误:
"System.Runtime.InteropServices.COMException:未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))."
我在Adobe论坛上被告知错误的原因是他们没有64位版本的AxAcroPDF ActiveX控件.
有什么方法可以解决这个问题吗?例如,我可以自己将32位ActiveX控件转换为64位控件吗?
rpe*_*ich 14
您无法自己将Adobe的ActiveX控件转换为64位,但您可以通过将平台目标设置为x86来强制您的应用程序以32位模式运行.
有关您的Visual Studio版本的说明,请参阅使用Microsoft Visual Studio 2005时的问题 1.44部分
小智 6
.Net framework 1.1始终以32位CPU为目标,而.Net framework 2.0及更高版本可以根据Visual Studio IDE的"Platform Target"选项更改的程序清单的processorArchitecture属性,以32位或64位为目标.使用默认选项"Any CPU",IL代码根据平台进行编译,但是当平台为64位时,对AxAcroPDF 32位组件的COM调用当然会失败.只需将EXE重建为目标32位平台即可.这适用于Vista 64位的WOW64仿真器.