Pregunta

Tengo una aplicación WPF que utiliza Flash10c.ocx desarrollado en una máquina de 32 bits. No tuve que registrar el ocx en mi máquina de desarrollo, simplemente instalé el último flash, agregué una referencia y comencé a codificar. Cuando pruebo en un sistema de 64 bits, me pongo viejo '' Clase no registrada '' lo cual creo que significa que necesito registrar el ocx. ¿Está bien copiar el ocx de 32 bits (estoy bastante seguro de que es de 32 bits ya que se encuentra en C: \ Windows \ System32 \ Macromed en el sistema de desarrollo) en un sistema de 64 bits y registrarlo?

Actualización: errores de flash10c.ocx regsvr32 / i con " El módulo flash10c.ocx se cargó pero la llamada a DllRegisterServer falló con el código de error 0x80004005 "

Actualización 2: He renunciado a esto y decidí ejecutar Flash solo en sistemas de 32 bits. Si alguien tiene una mejor respuesta, me gustaría escucharla, pero estoy marcando la sugerencia actual como respondida para dar el debido crédito por el esfuerzo.

¿Fue útil?

Solución

El motivo por el que no funciona es que su aplicación WPF se ejecuta como 64 bits.

Una aplicación .NET puede ejecutarse como 32 bits o 64 bits; y el CLR está JITING su aplicación a cualquier arquitectura en la que se ejecute la aplicación, en este caso de 64 bits.

Excepto que ahora desea que su aplicación de 64 bits cargue una dll de 32 bits. Esto no es posible. Un proceso de 64 bits solo puede cargar archivos dlls de 64 bits. Un proceso de 32 bits solo puede cargar archivos dlls de 32 bits. Ninguna cantidad de retoques con el registro de objetos COM cambiará esto; no se trata de entradas de registro faltantes.

Adobe Flash solo viene como un dll de 32 bits. Adobe no tiene ahora (y espero que nunca lo haga) una versión de 64 bits.

Para que su aplicación WPF .NET cargue el dll flash de 32 bits, debe ejecutarse como un proceso de 32 bits. Hay una manera, en la configuración de compilación de Visual Studio, de forzar a su aplicación .NET a apuntar solo a x86 , en lugar de Any CPU .

Las opciones de los objetivos de CPU son:

  • Cualquier CPU
  • x86
  • x64
  • Itanium

Flash, por lo que vale, tampoco tiene una versión Itanium.

Consulte StackOverflow: Visual Studio "Cualquier CPU" objetivo para obtener más información sobre el objetivo cpus.

Otros consejos

Puede ser que el instalador flash sea solo para sistemas operativos de 32 bits. Por lo tanto, no se instaló correctamente en una máquina de 64 bits. El error significa que necesitará registrar manualmente el ocx, pero si se registra con éxito, esa es una pregunta totalmente diferente.

Editar 1 : aquí está Declaración de soporte de Adobe para Sistemas de 64 bits ( no hay ninguno ) (supongo que está utilizando un navegador de 64 bits en una máquina de 64 bits)

Editar 2 : Otro mensaje del foro sobre Flash en ventanas de 64 bits s.

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