xxxxxx.exe no es una aplicación Win32 válida

Tengo un pequeño proyecto de C / C ++ en Visual Studio 2012 RC

Esta aplicación analiza el argv y luego llama a otro archivo .exe con ShellExecute

Mi aplicación funciona perfectamente en Windows7, pero en Windows XP x86 trhows no es un error válido de la aplicación Win32.

Lo he comstackdo con Mutli-thread (/ MT) y Win32 Platform

Este es mi #includes

 #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  

Gracias

Las aplicaciones VS 2012 no se pueden ejecutar con Windows XP.

Consulte este blog de VC ++ sobre por qué y cómo hacerlo funcionar.

Parece ser compatible / posible desde febrero de 2013. Consulte la respuesta noelicus a continuación sobre cómo hacerlo.

Es febrero de 2013, y ahora puedo apuntar a XP en VS2012 estableciendo:

Project Properties -> General -> Platform Toolset para:

Visual Studio 2012 – Windows XP (v110_xp)

Deberá redistribuir las bibliotecas msvcp110.dll y demás con su aplicación, que se encuentran aquí: "\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\"


Actualice agosto de 2015 con Visual Studio 2015

Parece que hay una gran selección ahora. Pude comstackr la aplicación en VS2015 usando Visual Studio 2015 – Configuración de Windows XP (v140_xp) . Para hacerlo funcionar realmente en Win XP tuve que implementar (copiar junto con la aplicación) msvcr100.dll para la versión Release y msvcr110.dll y msvcr100d.dll para la comstackción Debug (tenga en cuenta que hay una diferencia en los números 100 y 110, también debug lib msvcr100d .dll puede no ser redistribuible) Orientación de Windows XP con Visual Studio 2015

Hay al menos dos soluciones:

  1. Necesita Visual Studio 2010 instalado, luego desde Visual Studio 2010, Ver -> Explorador de soluciones -> Hacer clic con el botón derecho en su proyecto -> Seleccionar propiedades en el menú contextual, obtendrá las ventanas “Propiedades de su proyecto” -> Configuración Propiedades -> General -> Juego de herramientas de plataforma, elija “Visual Studio 2010 (v100)”.
  2. Necesita la actualización 1 de Visual Studio 2012 descrita en la orientación a Windows XP con C ++ en Visual Studio 2012

Si bien la respuesta seleccionada fue correcta hace un momento, y luego noelicus dio una actualización correcta con respecto al conjunto de herramientas de la plataforma v110_xp, todavía hay un problema más que podría provocar este comportamiento.

Una nota sobre el tema ya fue publicada por mahesh en su comentario, y me gustaría resaltar esto ya que he pasado un par de días luchando y luego lo he encontrado solo.

Por lo tanto, si tiene un espacio en blanco en “Propiedades de configuración -> Enlazador -> Sistema -> Subsistema”, seguirá recibiendo el error “aplicación Win32 no válida” en XP y Win2003, mientras que en Win7 funciona sin este molesto error. El error desapareció tan pronto como puse el subsistema: consola.

Para mí, esto me ayudó: 1. Propiedades de configuración / General / Platform Toolset = Windows XP (V110_xp) 2. Definiciones del preprocesador C / C ++, agregue “WIN32” 3. Linker / System / Minimum required version = 5.01

Tuve el mismo problema en Windows XP cuando ejecuté una aplicación creada con una versión estática de Qt 5.7.0 (MSVC 2013).

Agregar la siguiente línea al archivo .pro del proyecto lo resolvió:

 QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01 

Creo que este error también puede producirse si su proyecto se dirige a una versión de marco que no está instalada en el servidor en el que está implementando.

Obtuve este problema al lanzar una aplicación de consola VS2013 de 32 bits en PowerShell, al ejecutarlo en cmd no se produjo este problema.