Wie funktioniert Sie winver ein, oder WIN32_WINNT beeinflussen Betriebssystem-version, wie gezeigt, durch dumpbin

Haben wir eine vorhandene (alte) codeline wir haben vor kurzem umgestellt von VC6 auf VS2008 (Umstellung auf VS2005 auf dem Weg). Nach unserer Bekehrung, die alle (oder die meisten) unserer vcproj Dateien winver ein, um 0x0500, die über die Präprozessor-Einstellungen. In ganz wenigen unserer vorkompilierte Header (typischerweise stdafx.h) ist winver zu 0x0500 (einige immer noch legen Sie es auf 0x0400). Wenn ich mit dumpbin /headers auf unserer Haupt-exe-Datei, es zeigt, dass die Betriebssystem-Version 5.0 (Windows 2000).

Nach dem ändern der vcproj-Präprozessor-Einstellungen, so dass Sie winver ein, und WIN32_WINNT sind 0x0501 und eine ähnliche änderung in der stdafx.h-Datei und Wiederaufbau, dumpbin-stil zeigt, dass die Betriebssystem-version ist 5.0.

Habe ich auch erstellt eine neue Konsole-Anwendung (sowie eine brand neue MFC-Anwendung) mit VS2008 und gebaut haben. Diese EXE zeigt auch eine Betriebssystem-version 5.0, auch wenn Sie winver ein, (und WIN32_WINNT), wie auch über die targetver.h-Datei, ist 0x0600.

Hätte ich gedacht, dass die Einstellung Sie winver ein, und/oder WIN32_WINNT auf 0x0501 oder 0x0600 würde eine gewisse Wirkung auf die version des Betriebssystems angezeigt, die von dumpbin. Bin ich rechts, sollte ich erwarten, dass Sie dumpbin zu zeigen, eine Betriebssystem-version entsprechend winver ein, und/oder WIN32_WINNT?

Ich habe einige gute Artikel zu diesem ("unter Verwendung der Windows-Header" auf der msdn-Website, "Was ist der Unterschied zwischen winver ein..." auf " The Old New Thing, und dies besonders interessant:
http://blogs.msdn.com/dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

Während es ist wahrscheinlich nicht ein riesiges Problem genau, welche version angezeigt wird in der die version des Betriebssystems Feld, wir würden gerne verstehen, das Verhalten und in der Lage sein zu tun, das "richtige" zu tun, um sicherzustellen, dass wir mit diesen Makros und Einstellungen korrekt.

Vielen Dank für jede Hilfe

InformationsquelleAutor wageoghe | 2009-06-29
Schreibe einen Kommentar