Programa VOCA 4.3 no funciona en Windows 7 64 bits

El programa VOCA 4.3 funciona perfectamente en la versión de 32 bits y NO funciona en la versión de 64 bits de Windows 7
El mensaje de error :

Descripción:
  Stopped working

Firma con problemas:
  Nombre del evento de problema:    CLR20r3
  Firma del problema 01:    voca.exe
  Firma del problema 02:    4.3.1.0
  Firma del problema 03:    4aacea87
  Firma del problema 04:    VirtualKeyboard
  Firma del problema 05:    4.3.1.0
  Firma del problema 06:    4aacea84
  Firma del problema 07:    d
  Firma del problema 08:    56
  Firma del problema 09:    System.BadImageFormatException
  Versión del sistema operativo:    6.1.7601.2.1.0.768.3
  Id. de configuración regional:    3082

¿Hay alguna solución al problema?
Gracias.
|

* Pruebe con un número de página inferior.

* Escriba solo números.

* Pruebe con un número de página inferior.

* Escriba solo números.

1 Clic derecho sobre el ejecutable y escoja la opcion solucionar problemas de compatibilidad.


¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

He probado la solución aportada y continua sin funcionar.
He probado compatibilidad con xp Service pack2 y Vista, pues la compatibilidad con Windows 7 32 bits no esta entre las opciones.
De todos modos, gracias por tu interés en resolver mi problema.
Mantengo abierta la conversación para recibir nuevas soluciones.

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

Parece que ningún implicado en el desarrollo de esa aplicación se molestó en probarla en un Windows de 64 bits. :)

Tal como está elaborada la aplicación, Voca.exe se ejecuta como un proceso de 32 bits en los Windows x86 y un proceso de 64 bits en Windows x64. Asimismo, algunas de las DLL de las que depende se adaptan al modo de 32 bits o de 64 bits según el tipo del proceso que las carga. Este es el rasgo esencial de los ensamblados de .NET compilados con la designación de plataforma Any CPU.

Sin embargo, hay una DLL que no contiene solamente instrucciones de .NET puras (código "manejado"), sino también instrucciones nativas de la arquitectura x86 de 32 bits. Dado que los Windows de 64 bits no permiten combinar módulos de 32 y 64 bits en un mismo proceso, Winutils.dll solamente puede cargarse en procesos de 32 bits; en otro caso, la operación de carga devuelve el error o la excepción de "formato de imagen incorrecto". Lo mismo ocurriría con una DLL convencional de 32 bits que no contuviera código manejado.

¿Cómo se puede solventar esta dificultad? El método más simple consiste en forzar que Voca.exe se ejecute siempre como un proceso de 32 bits incluso en Windows de 64 bits. La aplicación de teclado virtual VocaKeys.exe también lo requiere. Esto se consigue modificando un campo especial de la cabecera de los ejecutables. Microsoft provee una herramienta de línea de comandos para este propósito, pero no la distribuye con el propio .NET sino en los SDK de Windows, ya que está dirigida particularmente a desarrolladores de software.

He enviado a una carpeta de Dropbox los Corflags.exe que se corresponden con .NET Framework 4.0 y .NET Framework 4.5, aunque ambos pueden procesar ensamblados de versiones anteriores. No obstante, el de .NET 4.5 solo es compatible con Windows Vista y siguientes, mientras que el otro se puede ejecutar en Windows XP o en Windows Server 2003 (aunque requiere en todos los sistemas los componentes de 32 bits de redistribución de Visual C++ 2010, vcredist_x86.exe, o fallará por no poder hallar Msvcr100.dll).
https://www.dropbox.com/sh/42143lfdbwfdb58/i83m6Hac0_

 

Como Voca.exe está basado en .NET Framework 3.5, que se apoya en .NET Framework 2.0, realmente nos da igual el Corflags.exe que vayamos a usar. Así pues, habiendo descargado ya Corflags.exe, el primer paso es ejecutar una ventana de símbolo del sistema como administrador: en Inicio, escribir CMD y pulsar Ctrl+Mayús+Intro o hacer clic derecho y Ejecutar como administrador. He supuesto que Voca se instaló en C:\Program Files (x86)\Voca, donde C:\Program Files (x86) viene representado por la variable de entorno %programfiles(x86)%, y Corflags se encuentra en la carpeta de descargas de nuestro perfil de usuario con el nombre Corflags.exe. Entonces hay que escribir:

cd /d %programfiles(x86)%\voca

"%userprofile%\downloads\corflags" voca.exe /32bit+
"%userprofile%\downloads\corflags" vocakeys.exe /32bit+

Previamente, corflags voca.exe muestra algo como:

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x1
ILONLY    : 1
32BIT     : 0
Signed    : 0

Después de aplicar el parámetro /32bit, el valor 32BIT habrá cambiado y con él CorFlags:
Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x3
ILONLY    : 1
32BIT     : 1
Signed    : 0

Corflags para .NET 4.5 renombró el campo 32BIT como 32BITREQ. Aparte, el campo 32BITPREF solo se utiliza en .NET 4.5, por lo que en principio no nos afecta (valdrá cero).

 

La solución a medio o largo plazo de este inconveniente tiene que venir de la mano de los desarrolladores de Voca, ya sea forzando la compilación a x86 (no Any CPU) en versiones futuras o bien, si estiman beneficios adicionales con una aplicación en modo de 64 bits, creando bibliotecas DLL mixtas o nativas para x86 y x64 por separado y seleccionando la plataforma adecuada en tiempo de ejecución.

--
No estoy aquí por las marcas de respuesta, los logros ni las estadísticas.

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

muchas gracias a mí si me sirvió.

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

En el momento de su publicación supuse que había que realizar algún cambio en el código fuente y desestimé la propuestas. Ahora cuando he leído la respuesta de agradecimiento, he caído en la cuenta de que tan solo se trataba de ejecutar el programa CORFLAGS y realizar la modificación que se indicaba. ¡SENCILLISIMO!.
Ahora el programa funciona en mi Windows 7 64 bits.
Muchas gracias.
RicardoG2012

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

En el momento de su publicación supuse que había que realizar algún cambio en el código fuente y desestimé la propuestas. Ahora cuando he leído la respuesta de agradecimiento, he caído en la cuenta de que tan solo se trataba de ejecutar el programa CORFLAGS y realizar la modificación que se indicaba. ¡SENCILLISIMO!.
Ahora el programa funciona en mi Windows 7 64 bits.
Muchas gracias.
RicardoG2012

En realidad gracias a este post solucioné a distancia una instalación de VOCA en W7 (yo uso linux). Osea que me ha hecho doblemente feliz leer tu comentario. :)

Saludos

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

Muchisimas gracias Ramón! Funcionó a la perfección tu solución.

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

Yo tengo un problema, no sé si estaré haciendo algo mal, pero al escribir en la ventana CMD el texto me sale un mensaje como el siguiente:


¿Alguien sabe qué pasa?

Gracias

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

El fallo es por no seguir las instrucciones tal como están escritas:


ejecutar una ventana de símbolo del sistema como administrador: en Inicio, escribir CMD y pulsar Ctrl+Mayús+Intro o hacer clic derecho y Ejecutar como administrador.


En la barra de titulo debe mostrar CMD: Administrador

Y en su interior debe tener la ruta: C:\Windows\system32>

Y no hacia la carpeta de usuario C:\Users\nombreusuario>

Saludos cordiales. Ivan

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

Los archivos de mi carpeta de Dropbox se denominan Corflags_v40.exe y Corflags_v45.exe. Tendrías que escribir en la línea de comandos "%userprofile%\downloads\corflags_v40" o "%userprofile%\downloads\corflags_v45" dependiendo del archivo descargado, o bien renombrar el archivo a "corflags.exe" (solamente "corflags" si la extensión está oculta en el explorador) y volver a hacer lo mismo de la captura de pantalla.

--
No estoy aquí por las marcas de respuesta, los logros ni las estadísticas.

¿Le ha sido útil esta respuesta?

Sentimos que no te haya sido de ayuda.

¡Genial! Gracias por los comentarios.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios, nos ayudan a mejorar el sitio.

¿Qué grado de satisfacción tiene con esta respuesta?

Gracias por sus comentarios

* Pruebe con un número de página inferior.

* Escriba solo números.

* Pruebe con un número de página inferior.

* Escriba solo números.

 
 

Información de la pregunta


Última actualización 15 de abril de 2019 Vistas: 586 Aplicable a: