AxAcroPDF - Vista64 Class Not Registered Error

*爱你&永不变心* 提交于 2019-12-05 21:57:15

问题


We have a WinForms application written in C# that uses the AxAcroPDFLib.AxAcroPDF component to load and print a PDF file. Has been working without any problems in Windows XP. I have moved my development environment to Vista 64 bit and now the application will not run (on Vista 64) unless I remove the AxAcroPDF component. I get the following error when the application runs:

"System.Runtime.InteropServices.COMException: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))."

I have been advised on the Adobe Forums that the reason for the error is that they do not have a 64 bit version of the AxAcroPDF ActiveX control.

Is there some way around this problem? For example can I convert the 32bit ActiveX control to a 64bit control myself?


回答1:


You can't convert Adobe's ActiveX control to 64bit yourself, but you can force your application to run in 32bit mode by setting the platform target to x86.

For instructions for your version of Visual Studio, see section 1.44 of Issues When Using Microsoft Visual Studio 2005




回答2:


The .Net framework 1.1 is always targeting 32 bits CPUs while .Net framework 2.0 and above can target 32 bits or 64 bits according to the processorArchitecture property of the program manifest changed by the 'Platform Target' option of the Visual Studio IDE. With the default option 'Any CPU', the IL code is compiled according to the platform but of course the COM call to the AxAcroPDF 32 bits component fails if the platform is 64 bits. Just rebuild the EXE to target 32 bits platform only. This works fine with the WOW64 emulator in Vista 64 bits.




回答3:


Use DLL isolation, works with every 32bit COM+ application. See more at: http://support.microsoft.com/kb/281335

With this solution you can isolate your 32 bit COM+ application into a separate 32bit process.

64bit applications search installed COM+ objects at: HKLM\Software\Classes, but 32bit applications use HKLM\Software\WOW6432\Classes



来源:https://stackoverflow.com/questions/67167/axacropdf-vista64-class-not-registered-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!