8

編集注: MS は、ドロップ XP スタントに関して顧客から非常に多くの悪いフィードバックを受け取った後、XP 用の実行可能ファイルをビルドできるようにするパッチがリリースされると発表しました。したがって、この Q のベースは実際には存在しませんが、非常に興味深い情報を集めていると思います。


ここで確立されているように: Visual Studio 11 でコンパイルされた実行可能ファイルの特別な点は何ですか?その結果、Windows XP で実行可能ファイルを実行できなくなりますか?

また、Connect のバグ/問題: https://connect.microsoft.com/VisualStudio/feedback/details/690617では、Visual Studio 11 (2012 年リリース予定) は Windows XP をサポートしなくなる予定です。

つまり、Windows XP で実行できるネイティブ C++ 実行可能ファイルを作成することはできません。(理由の 1 つは、新しい CRT が、Windows Vista 以降でのみ利用可能な Windows API 呼び出しを使用することです。)

1つの回答で、アンダースは次のように書いています。

VS(NT4、2000、XP)の新しいリリースごとに、古いシステムのサポートを中止しているようです...

私が今興味を持っているのは、Microsoft が VS11 C++ から Windows XP のサポートを完全に削除するというこの動きを、実際に以前のリリースと比較できるかどうかです。

つまり、どの OS (NT3.5 / NT4 / 2000sp6 // Win95 / Win98 / ...) のサポートが Visual C++ から完全に削除されたのかということです。(そして、Visual C++ の "どの部分" -- コンパイラ、CRT、Windows SDK ですか?)

たとえば、VC6 は、Windows NT4 で実行される実行可能ファイルの作成に使用できる VS の最後のバージョンであることを知っていると思います。また、Win2k のサポートが終了したのは、実際のコンパイラや CRT よりも、使用している Windows SDK に関係していたことを覚えているようですが、よくわかりません。

どの設定でどの MS コンパイラがどの OS バージョンに対して互換性のあるコードを生成できるかを示す優れたリソースはありますか? VS11 (2012 年) のタイミングは、以前のリリースと比較して、広くインストールされている (しかし販売されなくなった) OS をサポートしなくなりましたか?


興味深い点の 1 つは、現在 C++03 から C++11 への移行の最中にあることです。 -standard) それが提供しなければならない C++11 サポート。

4

3 に答える 3

8

VS のリリース日を、Windows バージョンがリリースされた日ではなく、Windows バージョンがサポートされなくなった日と比較することは理にかなっていると思います。

OS が延長サポートの終了に達すると、セキュリティ更新プログラムの取得が停止し、それを実行しているすべての人は正気ではないと見なされ、無視される可能性があります (非常に特殊なケースを除きます)。それまでは、人々がまだ古い OS バージョンを使用し、ソフトウェアがそれらをサポートすることを期待することは (時には面倒ではありますが) 正当であるように思われます (もちろん、サードパーティと Microsoft 自身の両方のベンダーは、そうしないことを選択できます)。

ウィキペディアによると、Windows の各バージョンが Microsoft によってサポートされなくなった (またはサポートされなくなる) のは次のとおりです。

  • 2020 年 1 月: Windows 7
  • 2017 年 4 月: Windows Vista
  • 2014 年 4 月: Windows XP
  • 2010 年 7 月: Windows 2000
  • 2006 年 7 月: Windows ME
  • 2006 年 7 月: Windows 98
  • 2004 年 6 月: Windows NT 4
  • 2001 年 12 月: Windows 95
  • 2001 年 12 月: Windows NT 3

それを既存の回答の詳細に結び付ける:

  • VS は 2014 年までサポートされていた Windows XP を 2012 年に削除しました。
  • VS は 2010 年に Windows 2000 を削除しましたが、その後すぐに有効期限が切れました。
  • VS は 2007 年に Win98/ME を削除しましたが、どちらも既に有効期限が切れています。
  • VS は 2005 年に Win95 と NT4 を削除しましたが、どちらも既に有効期限が切れていました。

そのため、VS2012 は、少なくともあと 1 年間サポートされる OS のサポートを終了する最初のバージョンのようです。これらの日付がすべて正しいと仮定します (私はそれらを再確認していません。主に私自身の好奇心のためにこれを行いました)。

于 2012-04-04T22:45:38.273 に答える
4

サポートされている最低限の Windows の 32 ビット デスクトップ エディションと、Microsoft のカスタマー サポートについてのみ話していると仮定します。

  • VC11 (2012 年以降): Windows Vista (2007 年以降)
  • VC10 (y2010): Windows XP SP3 (y 2008/2001)
  • Windows SDK 6.1: Windows XP (y 2001)
  • VS2008 (2007 年以降): Windows 2000 SP4 (2003 年以降)。最新のセキュリティ アップデートにより、Windows 2000 のサポートが終了しました。
  • Windows Vista 用の Windows SDK 更新プログラム: Windows 2000 (y 2000)
  • VS2005 (2005 年以降): Windows 98 (1998 年以降)、Windows 2000 Service Pack 3、Windows XP、Windows NT 3 (1993 年以降)。SP1 では 9x のサポートが廃止されました。最新のセキュリティ アップデートにより、Windows 2000 のサポートが終了しました。
  • VC6 (1998 年以降): Windows 95 (1995 年以降)、Windows NT ??
    • コンパイラは、Visual C++ Toolkit 2003 を介してアップグレードできます
    • プラットフォーム SDK は、2003 年 2 月バージョンの Windows 2003 SDK までアップグレードできます。

64 ビット OS のサポートはさまざまですが、ターゲット OS がリリース時にまだサポートされているかどうかは、適切な指標です。64 ビットをサポートする SDK の最初の安定バージョンは VC2005 です。

ハック (今後さらに問題が発生する可能性があります)

于 2011-12-12T17:50:58.080 に答える
2

Microsoft は、Windows XP を対象とした C++ アプリケーションのビルドのサポートが Visual Studio 2012 に含まれると発表したため、この点で 2012 は Visual Studio の以前のリリースに匹敵します。

http://blogs.msdn.com/b/vcblog/archive/2012/06/15/10320645.aspx

于 2012-09-14T10:55:57.653 に答える