Ist die verlorene Unterstützung für Windows XP in VS11 mit vorherigen Visual Studio-Versionen vergleichbar?

8

Hinweis: Nach einer scheinbar enormen Menge an schlechtem Feedback, das MS von ihren Kunden in Bezug auf den Drop-XP-Stunt erhalten hat, haben sie habe angekündigt , dass ein Patch veröffentlicht wird, mit dem ausführbare Dateien für XP erstellt werden können. Also ist die Basis für dieses Q nicht mehr wirklich da, aber ich denke, es sammelt einige sehr interessante Infos.

Wie hier festgestellt: Was ist das Besondere an den ausführbaren Dateien, die mit Visual Studio 11 kompiliert wurden, was dazu führt, dass die ausführbaren Dateien unter Windows XP nicht ausgeführt werden können?

und in diesem Connect Bug / Issue: Ссылка , Visual Studio 11 (geplante Version 2012) ist geplant, Windows XP nicht mehr zu unterstützen.

Das bedeutet, Sie können keine native C ++ - Programmdatei erstellen, die unter Windows XP ausgeführt werden kann . (Ein Grund dafür ist, dass das neue CRT Windows API-Aufrufe verwendet, die nur unter Windows Vista und höher verfügbar sind.)

In eine Antwort schreibt Anders:

  

Sie scheinen die Unterstützung für ältere Systeme in jeder neuen Version von VS (NT4, 2000, XP) zu löschen ...

Was mich jetzt interessiert, ist, ob dieser Schritt von Microsoft, die Unterstützung von Windows XP komplett aus VS11 C ++ herauszunehmen, tatsächlich im Vergleich zu früheren Versionen sein kann.

Was ich meine, ist, wann die Unterstützung für welches Betriebssystem (NT3.5 / NT4 / 2000sp6 // Win95 / Win98 / ...) komplett aus Visual C ++ verschwunden ist. (und "welcher Teil" von Visual C ++ - der Compiler, der CRT, das Windows SDK?)

Zum Beispiel glaube ich, dass VC6 die letzte Version von VS ist, die verwendet werden kann, um ausführbare Dateien zu erstellen, die unter Windows NT4 laufen. Ich erinnere mich auch, dass die verloren gegangene Unterstützung für Win2k mehr mit dem Windows SDK zu tun hatte, als mit dem eigentlichen Compiler oder CRT, aber ich bin mir nicht sicher.

Gibt es eine gute Ressource, die zeigt, welche MS-Compiler in welcher Einstellung kompatiblen Code für welche Betriebssystemversionen produzieren können? Steht das Timing von VS11 (Jahr 2012) nicht mehr für ein Betriebssystem, das weitgehend installiert ist (aber nicht mehr verkauft wird), vergleichbar mit früheren Releases?

Ein Punkt von Interesse ist, dass wir uns mitten in der Verschiebung von C ++ 03 zu C ++ 11 befinden, und wenn Sie mit Windows XP und VC10 festgefahren sind, stecken Sie fest mit dem Begrenzten ( und teilweise Nicht-Standard) C ++ 11 Unterstützung hat es zu bieten.

    
Martin Ba 12.12.2011, 15:27
quelle

3 Antworten

8

Ich denke, es ist sinnvoll, VS-Veröffentlichungsdaten mit dem Zeitpunkt zu vergleichen, zu dem die Windows-Versionen nicht mehr unterstützt wurden, als wenn die Windows-Versionen veröffentlicht wurden.

Sobald ein Betriebssystem das Ende der erweiterten Unterstützung erreicht, hört es auf, Sicherheitsupdates zu erhalten, und jeder, der es noch ausführt, kann als verrückt betrachtet und ignoriert werden (außerhalb ganz besonderer Fälle). Bis dahin scheint es legitim (wenn auch manchmal nervig) zu sein, dass Benutzer immer noch alte OS-Versionen verwenden und erwarten, dass Software sie unterstützt (obwohl Anbieter, sowohl Drittanbieter als auch Microsoft selbst, natürlich nicht wählen können) >

Aus Wikipedia ist das, wenn jede Version von Windows von Microsoft nicht unterstützt wird (oder wird):

  • Jan 2020: Windows 7
  • Apr 2017: Windows Vista
  • Apr 2014: Windows XP
  • Jul 2010: Windows 2000
  • Jul 2006: Windows ME
  • Jul 2006: Windows 98
  • Juni 2004: Windows NT 4
  • Dez 2001: Windows 95
  • Dez 2001: Windows NT 3

Verbinde das mit den Details in der vorhandenen Antwort:

  • VS hat 2012 Windows XP fallen gelassen, obwohl es bis 2014 unterstützt wird.
  • VS in 2010 ließ Windows 2000 fallen, das bald darauf ablief.
  • VS in 2007 hat Win98 / ME fallen lassen, die beide bereits abgelaufen sind.
  • VS 2005 hat Win95 und NT4 fallengelassen, die beide bereits abgelaufen waren.

Es sieht also so aus, als wäre VS2012 die erste Version, die die Unterstützung für ein Betriebssystem, das selbst noch mindestens ein Jahr lang unterstützt wird, fallen lässt. Vorausgesetzt, alle diese Daten sind korrekt (ich habe sie nicht doppelt überprüft; dies hauptsächlich für meine eigene Neugier).

    
Leo Davidson 04.04.2012, 22:45
quelle
4

Angenommen, Sie sprechen nur über die mindestens unterstützte 32-Bit-Desktop-Edition von Windows und den Kundensupport von Microsoft.

  • VC11 (y 2012): Windows Vista (ab 2007)
  • VC10 (y2010): Windows XP SP3 (ab 2008/2001)
  • Windows SDK 6.1: Windows XP (y 2001)
  • VS2008 (y 2007): Windows 2000 SP4 (y 2003). Das neueste Sicherheitsupdate hat Windows 2000-Unterstützung gelöscht.
  • Windows SDK-Update für Windows Vista: Windows 2000 (y 2000)
  • VS2005 (y 2005): Windows 98 (y 1998), Windows 2000 Service Pack 3, Windows XP, Windows NT 3 (y 1993). SP1 hat 9x Unterstützung verloren. Das neueste Sicherheitsupdate hat Windows 2000-Unterstützung fallen gelassen.
  • VC6 (y 1998): Windows 95 (y 1995), Windows NT ??
    • Compiler kann über Visual C ++ Toolkit 2003
    • aktualisiert werden
    • Platform SDK kann bis zur Version 2003 von Windows 2003 SDK aktualisiert werden.

Die Unterstützung für 64-Bit-Betriebssysteme variiert, aber ein guter Indikator ist, ob das Zielbetriebssystem zum Zeitpunkt der Veröffentlichung noch unterstützt wird. Die erste stabile Version von SDK mit 64-Bit-Unterstützung ist VC2005.

Hacks (kann mehr Probleme auf der Straße verursachen)

  • Patche die ausführbare Datei
    • Visual C ++ - Compiler: Es gibt einen / SUBSYSTEM- und einen / OSVERSION-Schalter, dessen Standardwert sich im Laufe der Zeit ändert, aber Sie können den Wert einfach über den Compiler-Schalter ändern oder einen Hex-Editor verwenden, wenn Sie das PE-Format kennen.
    • Ändern Sie die ausführbare Datei um neue API-Aufrufe zu entfernen, wenn Sie sicher sind, dass der Code, der die neue API aufruft, in Ihrem Programm nicht berührt wird.
  • CRT / MFC / ATL
Sheng Jiang 蒋晟 08.10.2014 17:10
quelle
2

Microsoft hat angekündigt, dass die Unterstützung für den Aufbau von C ++ - Anwendungen, die auf Windows XP ausgerichtet sind, in Visual Studio 2012 enthalten sein wird, so dass 2012 in dieser Hinsicht mit der vorherigen Version von Visual Studio vergleichbar ist.

Ссылка

    
Patrick Lambourne 14.09.2012 10:55
quelle