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

4 minutos de lectura

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

Tengo un pequeño proyecto 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 Windows 7, pero en Windows XP x86 no es un error válido de la aplicación Win32.

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

Este es mi #incluye

#include <string>
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <cstdio>
#include <vector>
#include <windowsx.h>
#include <shlobj.h>
#include <stdio.h>
#include <tchar.h>
#include <direct.h>

Gracias

  • ¿Compilaste una aplicación x64?

    – rekire

    03 jul.

  • ¿Es el “otro exe” una aplicación de 64 bits? ¿Lo recompiló para su entorno de 32 bits?

    – Juan León

    03 jul.

  • @usuario Aunque este es un comentario muy tardío, ¿ha verificado si "Configuration Properties -> Linker -> System -> Subsystem" Está establecido ? Si está en blanco, configúrelo en la opción adecuada, reconstruya y verifique el ejecutable en XP.

    – Mahesh

    11 oct.


  • @usuario Después de revisar mi comentario anterior, si aún recibe el mismo error, instalar la actualización MSFT lanzado recientemente.

    – Mahesh

    11 oct.


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

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

Propiedades del proyecto -> General -> Conjunto de herramientas de la plataforma a:

Visual Studio 2012 – Windows XP (v110_xp)

Deberá redistribuir las bibliotecas msvcp110.dll y otros con su aplicación, que se encuentran aquí: "<Program Files>Microsoft Visual Studio 11.0VCredistx86Microsoft.VC110.CRT"


Actualización de agosto de 2015 con Visual Studio 2015

Parece que hay una gran selección ahora. Pude compilar la aplicación en VS2015 usando Visual Studio 2015 – Windows XP (v140_xp) ajuste. Para que realmente se ejecute en Win XP, tuve que implementar (copiar junto con la aplicación) msvcr100.dll para la versión de compilación y msvcr110.dll y msvcr100d.dll para la compilación de depuración (tenga en cuenta que hay una diferencia en los números 100 y 110, también depure lib msvcr100d.dll puede no ser redistribuible)
Orientación a Windows XP con Visual Studio 2015

  • Eso es muy útil gracias. Vale la pena señalar que no necesita redistribuir los dlls si va a c/C++ => Code Generation => Runtime Library y elige compilar en su crt. Por ejemplo, con la opción /MT.

    – Tono demasiado

    15 jun.

  • Ahora MSVC 2015 y 2017 no admiten la vinculación estática para CRT.

    – Gota de lluvia7

    28 sep.


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

Las aplicaciones de VS 2012 no se pueden ejecutar en Windows XP.

Mira esto Blog de VC++ sobre por qué y cómo hacer que funcione.

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

  • Sí, pero lo hará finalmente. Estoy agregando este comentario, para aquellos que puedan ver la respuesta en algún momento del próximo año, donde debería ser posible.

    – Christian.K

    03 jul.

  • Este problema parece aparecer también en el RTM.

    – rekire

    20 sep.

  • Útil para futuros usuarios. Actualización lanzada para soportar XP

    – Mahesh

    11 oct.

  • Enlace solo respuesta. Enlace muerto = respuesta muerta.

    – Martín Schneider

    22 jul. 21 en 10:59

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

Mahesh ya publicó una nota sobre el problema en su comentario, y me gustaría resaltar esto ya que pasé un par de días luchando y luego lo encontré por mí mismo.

Por lo tanto, si tiene un espacio en blanco en “Propiedades de configuración -> Vinculador -> 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 subsystem:console.

  • Me mordieron al borrar Linker/System/Subsystem pensando que caería al valor predeterminado. Funciona, pero solo en Vista+. Rompe XP con el error “No es una aplicación Win32 válida”. Gracias @andrey por documentar.

    – CoreyStup

    09 ago. 16 a las 19:40

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

Hay al menos dos soluciones:

  1. Necesita Visual Studio 2010 instalado, luego desde Visual Studio 2010, Ver -> Explorador de soluciones -> Haga clic con el botón derecho en su proyecto -> Elija Propiedades en el menú contextual, obtendrá las páginas de propiedades de Windows “nombre de su proyecto” -> Configuración Propiedades -> General -> Conjunto de herramientas de plataforma, elija “Visual Studio 2010 (v100)”.
  2. necesitas el Actualización 1 de Visual Studio 2012 descrito en Orientación de Windows XP con C++ en Visual Studio 2012

Para mí, esto ayudó: 1. Propiedades de configuración/General/Conjunto de herramientas de plataforma = Windows XP (V110_xp) 2. Definiciones de preprocesador C/C++, agregue “WIN32” 3. Vinculador/Sistema/Versión mínima requerida = 5.01

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

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

Agregando la siguiente línea al proyecto .Pro el archivo lo resolvió:

QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01

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

Creo que este error también se puede generar si su proyecto tiene como objetivo una versión de marco que no está instalada en el servidor en el que se está implementando.

.

¿Ha sido útil esta solución?