it-swarm.com.de

Wie kompiliere ich für Win? XP mit Visual Studio 2012?

Ok, also verwende ich Visual Studio 2012 in Windows 7 x64 zum Programmieren und Kompilieren. Meine App funktioniert dort gut, aber wenn ich versuche, sie von einer Windows XP SP3 Virtual Machine aus auszuführen, erhalte ich "xxxx.exe ist keine gültige Win32-Anwendung".

Die Anwendung wird mit einer statischen Verknüpfung, dh mit/MT, kompiliert. Ich habe _WIN32_WINNT in targetver.exe auf 0x0501 gesetzt. Der Konfigurationsmanager ist auf Win32 und der Zielcomputer in den erweiterten Linker-Optionen auf MACHINEX86 gesetzt.

Mein targetver.h sieht so aus:

#include <winsdkver.h>

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501

#include <SDKDDKVer.h>

Ich habe auch versucht, mit/MD zu kompilieren und .NET Framework zu installieren, das half auch nicht.

Ich bin ahnungslos und könnte etwas Hilfe gebrauchen, da ich es für Windows XP brauche. Danke im Voraus.

23
WiperWoper

Erneutes Posting aus dem Kommentar und beachten Sie, dass diese Antwort nur für VC++ 2012 gilt:

VC++ 2012 RTM Unterstützt nicht WinXP - diese Unterstützung wird in diesem Jahr in VS2012 Update 1 folgen.

In der Zwischenzeit können Sie das CTP von WinXP-Targeting mit VC++ 2012 installieren, aber Sie müssen das CRT statisch verknüpfen, um es bereitzustellen. In diesem Blogartikel finden Sie weitere Informationen.


BEARBEITEN: Visual Studio 2012 Update 1 wurde nun veröffentlicht und bietet offizielle Unterstützung für die Ausführung von mit VC++ 2012 erstellten Apps unter Windows XP sowie die Möglichkeit, das CRT dynamisch zu verknüpfen.

24
ildjarn

Zwei Dinge sollten gemacht werden:

  • Konfigurationseigenschaften> Seite Allgemein, ändern Sie Platform Toolset in: Visual Studio 2012 - Windows XP (v110_xp);

  • Linker> System. Ändern Sie das Subsystem in: Console/Windows.

Details zur Erklärung hier: http://software.intel.com/de-de/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp

Möglicherweise ist die Lösung zu spät, oder es handelt sich möglicherweise nicht um die erwartete Lösung. Wenn Sie jedoch die .exe-Datei generieren, befindet sich die Version für 32-Bit im Projektordner bin\x86\Release

0
Cesar