Pregunta

Tenemos una WinForms aplicación escrita en C# que utiliza el AxAcroPDFLib.AxAcroPDF componente para cargar e imprimir un archivo PDF.Ha estado trabajando sin problemas en Windows XP.He trasladado mi entorno de desarrollo para Vista 64 bits y ahora la aplicación no se ejecutará (en Vista de 64), a menos que quite la AxAcroPDF componente.Me sale el siguiente error cuando se ejecuta la aplicación:

"El sistema.En tiempo de ejecución.InteropServices.COMException:Clase no registrada (Excepción de HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))."

Me han aconsejado en el Adobe Foros que la razón para el error, es que no tienen una versión de 64 bits de la AxAcroPDF control ActiveX.

¿Hay alguna manera de evitar este problema?Por ejemplo, ¿se puede pasar de 32 bits de control de ActiveX de 64 bits de control de mí mismo?

¿Fue útil?

Solución

No se puede convertir de Adobe control ActiveX de 64 bits sí mismo, pero puede forzar la aplicación para que se ejecute en el modo de 32 bits mediante el establecimiento de la plataforma de destino en x86.

Para obtener instrucciones para su versión de Visual Studio, vea la sección de 1.44 Problemas Cuando Se Utiliza Microsoft Visual Studio 2005

Otros consejos

El .Net framework 1.1 es siempre la orientación de 32 bits Cpu mientras .Net framework 2.0 y superior pueden destino de 32 bits o de 64 bits de acuerdo a la processorArchitecture propiedad del programa de manifiesto cambiado por la 'Plataforma de Destino" opción de la IDE de Visual Studio.Con la opción default 'CPU', la IL código es compilado de acuerdo a la plataforma pero, por supuesto, la llamada COM a la AxAcroPDF de 32 bits componente falla si la plataforma es de 64 bits.Sólo reconstruir el EXE de destino de 32 bits de una única plataforma.Esto funciona bien con el emulador WOW64 en Vista de 64 bits.

Utilice DLL aislamiento, funciona con todos los 32 bits de la aplicación COM+.Ver más en:http://support.microsoft.com/kb/281335

Con esta solución se puede aislar de 32 bits de la aplicación COM+ en un proceso de 32 bits.

De 64 bits de búsqueda de aplicaciones instaladas objetos COM+ en:HKLM\Software\Classes, pero las aplicaciones de 32 bits uso HKLM\Software\WOW6432\Classes

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top