2010-04-11 14 views
6

Tengo una aplicación VB6 antigua que todavía estoy intentando admitir. Algunos usuarios han informado de bloqueos extraños al ejecutar la aplicación en Vista o Windows 7. Los archivos de registro no muestran nada después de uno de estos bloqueos, pero los clientes informan que el mensaje de error decía "OLE algo ...", si vio algo en absoluto.¿Cómo mantener una aplicación VB6 vieja ejecutándose en Windows Vista y Windows 7?

Nunca he podido reproducir estos bloqueos mientras ejecuto el programa en mis propios cuadros Vista o Windows 7, así que básicamente no tengo información sobre cuál es el problema.

Mi sospecha es que se trata de un problema con sus versiones de uno o más de los miles de millones de DLL de los que depende una aplicación VB6. La aplicación también utiliza lame_enc.dll, que presenta algunas dependencias más.

Supongo que este es un problema común con las aplicaciones VB6 (aunque es posible que acabe de chuparme como programador hace 10 años). ¿Existe algún instalador/actualizador mágico que asegure que todas las dependencias VB6 sean lo que necesitan para que una aplicación VB6 funcione correctamente?

Respuesta

1

Una opción es ponerse en contacto con el soporte técnico de Microsoft. El tiempo de ejecución VB6 is fully supported en Windows 7. Es posible que deba pagar un "incidente de soporte": o puede ser gratuito, por ejemplo, si tiene una suscripción a MSDN (es una buena idea obtener una).

+0

@MusiGenesis. Gracias por aceptar esto como la respuesta. Soy curioso. ¿Se comunicó con Microsoft y fueron útiles? Nunca he probado su compromiso de soporte VB6 en Windows 7, estaría interesado en saber qué tan fácil es hacer que lo ayuden. – MarkJ

2

Haga que el usuario ejecute la aplicación en modo compatibilidad para XP. Simplemente arrastre un acceso directo al escritorio, haga clic con el botón derecho en Propiedades. Luego, en la pestaña Compatibilidad, configúrelo como "ejecutar en modo de compatibilidad para:" y elija "Windows XP (Service Pack 3)". Y también "deshabilita la escala de visualización en configuraciones de alta DPI". Ver si eso ayuda. Es posible que sí.

2

Si Comaptibility Mode no funciona, también existe XP Mode. Esto virtualiza todo el entorno en una máquina virtual XP pero también le permite interactuar con el sistema operativo host. Sin embargo, solo está disponible para Windows 7.

+0

Buen consejo. Mi suegro compró un nuevo portátil con Windows 7/64, en contra de mi consejo de que no sería capaz de ejecutar muchas de sus cosas viejas. Resultó que yo tenía razón. Ahora ejecuta XP VM para ejecutar sus cosas viejas, y está contento. Gracias a Dios que 64 bits te permite agregar más RAM, así que puedes permitirte ejecutar máquinas virtuales para las cosas que no funcionarán en 64. Oye, espera un minuto ... –

1

En general, hemos tenido un comportamiento extraño con algunos clientes que intentaron ejecutar nuestra aplicación en Windows 7. En un caso, la barra de herramientas principal de la aplicación (un control estándar MSComctlLib.Toolbar) estaba completamente vacía (ninguno de los iconos o separador barras aparecieron). Estábamos desconcertados. El programa no se colgó, los iconos simplemente no estaban allí. Nada en los registros de errores de la aplicación, nada en el registro de eventos de Windows. Incluso nos aseguramos de que la aplicación estuviera configurada para ejecutarse en el modo de compatibilidad de Windows XP, pero no en dados. Por lo que sabíamos, las DLL correctas se instalaron y registraron, y hemos ejecutado la misma aplicación en la misma versión de Windows 7 desde entonces sin ningún problema.

En una decisión un tanto irónica, poco antes habíamos decidido apoyar oficialmente Windows 7, mientras que al mismo tiempo afirmamos que oficialmente no admitiríamos Vista (aunque algunos clientes ejecutan la aplicación en Vista sin problemas) . Al principio, esto puede sonar como una decisión extraña, pero hay dos buenas razones por las que esto tiene sentido:

  • mayoría de los nuevos ordenadores tendrán preinstalado Windows 7, y la mayoría de los clientes que se saltaron actualizar a Vista, debido a todos los FUD que lo rodean están muy interesados ​​en actualizar de XP a Windows 7.

  • Windows 7 admite XP Mode, lo que le permite ejecutar aplicaciones en una máquina virtual que ejecuta Windows XP SP3. Algunos de nuestros clientes han seguido esta ruta y ninguno ha informado de ningún problema al ejecutar nuestra aplicación de esta manera. Debido a que está ejecutando su aplicación en un entorno real de Windows XP, hay muchas menos posibilidades de que las cosas salgan mal.

+0

Supongo que las cosas han cambiado desde hace 6 años, pero ¿Por casualidad trataste de ejecutar tu aplicación como Administrador? (Supongo que el instalador se ejecutó como administrador.) –

0

Voy a votar el XPMode también.

Sin embargo, si todavía tiene problemas, Dependency Walker es una buena herramienta gratuita que escanea un exe/dll/ocx y construye un diagrama de árbol de todos los módulos/dlls dependientes. Incluso sin este problema, es útil para solucionar problemas de instalación.

http://www.dependencywalker.com/

Además, tuvimos varios problemas en el pasado con los artículos que escriben el registro en el que el usuario no tiene derechos de seguridad adecuados que causaron problemas similares. Puede verificar el código de esas funciones si las tiene.

1

Pruebe con un instalador externo como Installshield. Tengo una aplicación VB6 que no se instaló y ejecutó correctamente en Win 7 usando el instalador original, pero cuando lo puse en una versión reciente de Installshield, ahora funciona bien.

Cuestiones relacionadas