Comment compiler pour Win XP avec Visual Studio 2012?
Ok, je suis donc à l'aide de Visual Studio 2012 dans Windows 7 x64 pour la programmation et compilation. Mon application fonctionne très bien, mais quand j'essaie de l'exécuter à partir d'un ordinateur Virtuel Windows XP SP3, j'obtiens "xxxx.exe n'est pas une application win32 valide" tout de suite.
L'application est compilée avec lien statique, c'est-à /MT. J'ai mis _WIN32_WINNT à 0x0501 dans targetver.exe; le gestionnaire de configuration est réglé sur Win32 et la machine cible dans le Linker options avancées est fixé à MACHINEX86.
Mon targetver.h ressemble à ceci:
#include <winsdkver.h>
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501
#include <SDKDDKVer.h>
J'ai aussi essayé de compiler avec /MD et de l'installation .NET Framework, qui ne l'a pas aidé non plus.
Je suis paumé, et je ne pouvais vraiment utiliser un peu d'aide car j'ai besoin d'avoir de travail pour Windows XP. Merci à l'avance.
- VC++ 2012 RTM n' pas support WinXP. Avez-vous installé le CTP de WinXP ciblage avec VC++ 2012? Voir cet article de blog pour plus d'informations.
- Eh bien, voilà qui explique tout. Pourrait m'avez sauvé quelques heures à essayer de le faire fonctionner. Je vais jeter un oeil à ces liens, merci.
- Veuillez noter que
Visual Studio
n'est pas un langage de programmation, c'est un environnement de développement. Il prend en charge de nombreux langages (C#, VB.NET, C++, etc.). Le langue que vous utilisez est en C++, et c'est ce que devrait répondre à votre question. Il y a une différence importante entre une langue et d'une IDE et la plupart du temps. 🙂 - Oui, je sais que Ken. Je suis désolé si la question était de toute façon trompeuse. Je n'ai pas l'intention de dire Visual Studio est un langage de programmation, je voulais juste faire remarquer que c'était mon environnement de développement comme vous l'avez dit, qu'il semblait être la cause de mon problème. Merci quand même.
- Juste essayé la CTP pour WinXP Cibler (j'espère que j'ai fait la mise en forme droite avec lien) et cela a fonctionné parfaitement. Suppose que je n'aurez pas besoin de revenir à Visual Studio 2010. Merci beaucoup, j'avais upvote vous si j'ai pu, malheureusement, je ne peux pas. Encore.
- Liés à la question, en se concentrant sur ce qui se passe: Ce qui est spécial au sujet de la exécutables...
Vous devez vous connecter pour publier un commentaire.
Rediffusion de commentaire et de noter que cette réponse n'est applicable qu'à VC++ 2012:
VC++ 2012 RTM ne pas soutien WinXP – que le soutien viendra plus tard cette année dans VS2012 mise à Jour 1.
En attendant, vous pouvez installer le CTP de WinXP ciblage avec VC++ 2012, mais vous aurez à le lien le CRT de manière statique dans le but de déployer. Voir cet article de blog pour plus d'informations.EDIT: Visual Studio 2012 Update 1 a été publié, et ajoute le support officiel pour exécuter des applications développées avec VC++ 2012 sur Windows XP ainsi que la possibilité de lier le CRT de façon dynamique.
Deux choses doivent être faites:
Propriétés de Configuration > page Général, changement de Plate-forme ensemble d'Outils: Visual Studio 2012 - Windows XP (v110_xp);
De l'éditeur de liens > Système. Changement de sous-système: Console/Windows.
Détails de l'explication ici: http://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp
Peut-être la fin de la solution, ou il peut ne pas être la solution attendue, mais lorsque vous générez le .exe, la version 32 bits, il sera dans le Projet de dossier bin\x86\Release