Visual Studio 2010-Win32-App startet nicht auf Windows XP

Hatte ich zu schreiben, eine einfache Anwendung mit einigen spezifischen Anforderungen:
1. Es sollte bestehen aus nur einer exe-Datei, kein installer oder externe DLL
2. Es sollte klein sein
3. Es sollte laufen auf jedem Windows - (Win32) - Plattform (zumindest unter Windows XP), ohne dass änderungen an der Windows-installation (keine Abhängigkeiten .NET, JVM, MFC oder Visual Studio redistributables)
4. Es sollte eine einfache (dialog-basiert) UI

Ich beschlossen, es zu tun, wie Sie eine einfache Win32-Anwendung in C (C++) und nur die Verwendung der standardmäßigen win32-api, keine ausgefallene Sachen. Erstellt habe ich das Projekt mit Visual Studio 2010 auf 64-bit Windows 7 und geänderte Runtime-Bibliothek von Multi-threaded DLL nur für Multi-threaded. Ich dachte, das würde die meisten Windows-kompatiblen Applikation möglich.

Die kompilierte Anwendung funktioniert gut auf meinem Windows 7, aber ich kann es nicht starten auf jedem Windows-XP-PC. Ich habe versucht, sowohl auf Windows XP SP2 und SP3. Das merkwürdige ist, ich bekomme keine Fehlermeldung und keine Schurken Prozesse im aktivitätsmanager, passiert nichts, wenn ich Doppelklick auf die exe-Datei. Und es gibt keine DrWatson log produziert.

Ich habe die Target-Maschine in der Projekt-Einstellungen und es ist MachineX86.

Habe ich gegoogelt eine Menge über das problem, und der Tipp war zu ändern targetver.h, was ich getan habe, ohne Ergebnis. Dies ist, was mein targetver.h sieht aus wie jetzt:

#include <WinSDKVer.h>
#define _WIN32_WINNT      _WIN32_WINNT_WINXP
#include <SDKDDKVer.h>

Ich habe auch versucht, dependency walker, aber es nur zeigt und Fehler für eine delay-loaded DLL genannt DWMAPI.DLL scheint ein Vista-DLL. Und auch Warnungen für die beiden anderen delay-loaded DLL ' s, MPR.DLL und SHLWAPI.DLL. Aber da Sie delay geladen, und ich glaube nicht, dass ich etwas in Ihnen sollte es nicht egal ist (googeln zeigt sich, dass diese Warnungen sollten ignoriert werden).

Mein Ziel ist es, in der Lage sein zu kompilieren eine exe-Datei, wird die Arbeit auf die XP-Maschinen, ohne irgendwelche änderung.

möglich, Duplikat der Wie kann ich die kompilieren für windows XP unter windows 7 / visual studio 2008
Können Sie eine "dumpbin /imports yourapp.exe" (wo "yourapp.exe" ist Ihr EXE-name)? Möglicherweise geben einige Hinweise darüber, welche DLLs fehlen. Auch der system-event-log wird in der Regel einige Informationen darüber, warum ein Prozess nicht gestartet werden konnte.
Sollte dies funktionieren. Sie teilten nicht alle code, so ist es schwer zu erraten, was falsch ist. Haben Sie versucht, eine einfache "hello world" - console-app, die statisch verknüpft ist mit der VC-runtime (wie Sie oben beschreiben). Bedeutet das nicht ausgeführt? Es ist durchaus möglich, Ihr Programm läuft auch Prima unter XP... bu tyou haben möglicherweise einen "bug", der bewirkt, dass es abbricht oder nicht-display-alles auf XP. Haben Sie versucht, Debuggen EXE auf XP mit einem debugger?
Haben Sie versucht, mit einer leeren app? Nur die grundlegenden win32-gui-Vorlage, app.
Vielen Dank für all die Tipps. Ich sah in dem Ereignis-log, aber es gibt überhaupt keinen Eintrag von der Zeit, wenn ich versuche zu starten meiner app. Ich habe versucht, den Bau der Standard-Vorlage Win32-app und es funktioniert erfolgreich auf Windows XP. Ich werde versuchen zu Folgen, selbies Spitze und verwenden Sie dumpbin.

InformationsquelleAutor Christoffer | 2012-02-03

Schreibe einen Kommentar