Pregunta

Después de compilar un proyecto simple de C++ usando Visual Studio 2008 en Vista, todo funciona bien en la máquina Vista original y en otras computadoras Vista.Sin embargo, moverlo a un cuadro de XP genera un mensaje de error:"La aplicación no pudo iniciarse porque la configuración de la aplicación es incorrecta".

¿Qué tengo que hacer para que mi EXE compilado funcione en XP y Vista?Tuve el mismo problema hace unos meses y simplemente modificando algunas configuraciones del proyecto lo solucionó, pero no recuerdo cuáles cambié.

¿Fue útil?

Solución

Debe instalar el tiempo de ejecución de Visual Studios 2008 en la computadora de destino:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

Alternativamente, también puede vincular el tiempo de ejecución de forma estática; en la ventana de propiedades del proyecto, vaya a:

C ++ -> Generación de códigos -> Biblioteca de tiempo de ejecución y seleccione "Multi -subprocesos /MT"

Otros consejos

Debe instalar los archivos redistribuibles en tiempo de ejecución en la máquina en la que intenta ejecutar la aplicación.

El redistribuible para 2008 es aquí.

El redistribuible para 2005 es aquí.

Se pueden instalar uno al lado del otro, en caso de que necesite ambos.

Probablemente necesite distribuir el tiempo de ejecución de VC con su aplicación.Hay varias formas de hacer esto. Este artículo del equipo de Microsoft Visual C++ explica mejor las diferentes formas de distribuir estas dependencias si está utilizando Visual Studio 2005 o 2008.

Como se indica en el artículo, aunque puede descargar el paquete de instalación redistribuible y simplemente ejecutarlo en la máquina cliente, casi siempre no es la opción óptima.Por lo general, existen mejores formas de incluir las DLL requeridas, como incluir el módulo de combinación si está distribuyendo a través de la configuración de Windows o la copia de la aplicación local si solo desea distribuir una carpeta comprimida.

Otra opción es vincular estáticamente las bibliotecas en tiempo de ejecución, en lugar de distribuirlas con su aplicación.Esta opción solo es adecuada para EXE independientes que no cargan otras DLL.Tampoco puede hacer esto con archivos DLL cargados por otras aplicaciones.

Es mucho más sencillo vincularse estáticamente al tiempo de ejecución.

c++ -> Generación de código -> Biblioteca de tiempo de ejecución y seleccione "multiproceso /MT"

Sin embargo, esto hace que su ejecutable sea un par de cientos de KB más grande.Esto podría ser un problema si está instalando una gran cantidad de programas pequeños, ya que cada uno tendrá su propia copia del tiempo de ejecución.La respuesta es crear un instalador.

Nuevo proyecto -> "configuración e implementación" -> "proyecto de configuración"

Cargue el resultado de sus proyectos de aplicación (definidos usando la versión DLL del tiempo de ejecución) en el proyecto del instalador y compílelo.La dependencia de la DLL en tiempo de ejecución se notará, se incluirá en el paquete de instalación y se instalará de forma ordenada y discreta en el lugar correcto de la máquina de destino.

Visual Studio 2005 en realidad tiene dos

El de el lanzamiento original

y el uno para SP1

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