Ich habe kürzlich von Visual Studio Express 2010 auf Visual Studio 2012 Express für Windows Desktop aktualisiert. Ich bin mir der früheren mangelnden Kompatibilität mit Windows XP bewusst, dachte aber, dass dies durch Update 1 (das ich installiert habe) behoben wurde.MS Visual Studio 2012 Express für Windows Desktop - Targeting für Windows XP
Allerdings habe ich immer noch Schwierigkeiten mit Windows XP mit den C++ - Anwendungen, die ich mit 2012 Express kompiliert habe. Ich habe das Platform Toolset auf "Visual Studio 2012 - Windows XP (v110_xp)" gesetzt, aber das macht keinen Unterschied. Wenn ich versuche, meine kompilierte Anwendung auf meinem Windows XP-System auszuführen (ich verwende Windows XP über VirtualBox), erhalte ich den Fehler, dass meine Anwendung "keine gültige Win32-Anwendung ist".
Ich habe auch versucht, die CLR-Unterstützung auf "Keine Common Language Runtime-Unterstützung" und die Laufzeitbibliothek auf "Multi-Thread (/ MT)" einzustellen.
Selbst bei einem sehr einfachen Rohling C++ Projekt mit dem folgenden Code, ich kann es einfach nicht auf XP laufen:
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501
#include <iostream>
int main()
{
std::cout << "TEST" << std::endl;
std::cout << std::endl << std::endl << "Press ENTER to close this window.";
std::cin.get();
return 0;
}
Kann mir jemand sagen, wo ich falsch gehe mit meinem Compiler/Projekt Einstellungen?
Ps.s. Ich habe die verteilbaren MS VC++ 2010 und 2012 Pakete auf meiner virtuellen Maschine XP installiert. Anwendungen, die ich mit Visual Studio Express 2010 kompiliert habe, funktionieren gut auf meinem virtuellen Computer XP.
Überprüfen Sie Ihre Zielplattform in Build -> Configuration Manager. – shf301
Sie können mit VC 10 Toolchain kompilierte Programme auf XP ausführen. Das ist im Wesentlichen das Gleiche wie das Kompilieren mit VS 2010, aber Sie haben nicht angegeben, dass Sie VC 11 Toolchain in der Frage benötigen. –
@ shf301 - Zielplattform ist Win32. – Colin