J'ai un petit projet C/C++ dans Visual Studio 2012 RC
Cette application analyse le fichier argv puis appelle un autre fichier .exe avec ShellExecute
Mon application fonctionne parfaitement sous Windows7, mais sous Windows XP x86 trhows N’est pas une erreur d’application Win32 valide.
Je l'ai compilé avec Mutli-thread (/ MT) et la plate-forme Win32
Ceci est mon # comprend
#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>
Merci
Les applications VS 2012 ne peuvent pas être exécutées sous Windows XP.
Voir ceci blog VC++ sur pourquoi et comment le faire fonctionner.
Il semble être supporté/possible à partir de février 2013. Voir réponse noelicus ci-dessous pour savoir comment.
Nous sommes en février 2013 et je peux maintenant cibler XP dans VS2012 en définissant:
Propriétés du projet -> Général -> Ensemble d'outils de la plate-forme à:
Visual Studio 2012 - Windows XP (v110_xp)
Vous devrez redistribuer les bibliothèques msvcp110.dll et autres avec votre application, qui se trouvent ici: "<Program Files>\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\"
Mise à jour août 2015 avec Visual Studio 2015
Il semble y avoir beaucoup de choix maintenant. J'ai pu compiler une application dans VS2015 en utilisant le paramètre Visual Studio 2015 - Windows XP (v140_xp) . effectivement exécuté sur Win XP je devais déployer (copie à côté de l'application) msvcr100.dll pour la version Release et msvcr110.dll = et msvcr100d.dll pour la construction de débogage (notez qu'il existe une différence entre les nombres 100 et 110, et mettez également debug à lib msvcr100d.dll peut ne pas être redistribuable) -
Alors que seleted répondait au bon moment, puis que noelicus a correctement mis à jour le jeu d’outils de la plate-forme v110_xp, il reste encore un problème qui pourrait provoquer ce problème.
Mahesh a déjà posté une note sur le problème dans son commentaire, et je voudrais le souligner car j'ai passé quelques jours à me débattre, puis à le trouver par moi-même.
Donc, si vous avez un blanc dans "Propriétés de configuration -> lieur -> système -> sous-système", vous obtiendrez toujours l'erreur "application Win32 non valide" sur XP et Win2003 sur Win7). fonctionne sans cette erreur gênante.L'erreur a disparu dès que j'ai mis le sous-système: console.
Il y a au moins deux solutions:
Pour moi, cela m'a aidé: 1. Propriétés de configuration/Général/Outils de la plate-forme = Windows XP (V110_xp) 2. Définitions du préprocesseur C/C++, ajouter "WIN32" 3. Éditeur de liens/Système/Minimum requis version = 5.01
J'ai eu le même problème sur Windows XP lors de l'exécution d'une application créée avec une version statique de Qt 5.7. (MSVC 2013).
L'ajout de la ligne suivante au fichier . Pro du projet l'a résolu:
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01