Visual C++ の前身はMicrosoft C/C++と呼ばれていました。また、 Microsoft QuickC 2.5 とMicrosoft QuickC for Windows 1.0もありました。Visual C++コンパイラは現在もMicrosoft C/C++と呼ばれており、Visual C++ 2015 Update 2 のリリース時点ではバージョン 14.0.23918.0 となっています。
16ビット版
Lattice Cをベースにした Microsoft C 1.0 は、1983 年にマイクロソフトが初めてリリースした C 言語製品でした。これはK&R Cに準拠していませんでした。
C 2.0 では大規模モデルのサポートが追加され、コードセグメントとデータセグメントの両方で最大 1MiB まで使用できるようになりました。[ 5 ]
1989 年にリリースされた C 6.0 では、小さなメモリ モデルのサポートと ANSI C89 標準へのサポートの改善が追加されました (ドキュメントには 100% 準拠ではないと明記されていますが、実用上は十分近いようです)。また、プログラマーズ ワークベンチIDE、グローバル フロー分析、ソース ブラウザー、新しいデバッガーが追加されました。多くの人が驚いたことに、競合他社が既に提供していた C++ は含まれていませんでした。[ 7 ]
C/C++ 7.0 は 1992 年にリリースされました。OS/2 のサポートは終了しました。コンパイルには 386 プロセッサと付属のDOSエクステンダーである386MAX [ 8 ]が必要でしたが、ユーザーが自分で作成するプログラムで DOS エクステンダーをターゲットにするには、後からリリースされたサードパーティ製ツールのいずれかが必要でした。[ 9 ] C++とMFC (Microsoft Foundation Class Library) 1.0の組み込みサポートが追加されました。[ 10 ]
Visual C++ 1.0(MFC 2.0を含む)は、1993年2月にリリースされた「Visual」C++の最初のバージョンでした。Cfront 2.1に準拠しており[ 11 ]、2つのエディションで利用可能でした。[ 1 ]
標準:Windows版QuickCに取って代わりました。
Professional: C/C++ 7.0 を置き換えた。DOS および Windows アプリケーションの両方をビルドする機能、最適化コンパイラ、ソースプロファイラ、および Windows 3.1 SDK が含まれていた。[ 11 ] Phar Lap 286 DOS Extender Lite も含まれていた。[ 12 ]
Microsoft Visual C++ Cross-Development Edition for the Macintosh は、Visual C++ のアドオンであり、Windows Portability Library を導入しました。これは当初 Windows Library for Macintosh [ 17 ] : 17または Windows Layer for the Macintosh (WLM) [ 18 ] : 16として知られており、開発者は Win32 および MFC API に対してアプリケーションを作成し、68000 アーキテクチャの Macintosh コンピュータ向けにコンパイルできるようにしました。[ 17 ]
Visual C++ 2.1と2.2は、サブスクリプションを通じて入手可能な2.0のアップデート版でした。
1995年12月11日にリリースされたVisual C++ 4.0 [ 19 ]では、Developer Studio IDEが導入されました。当時としては斬新だった、重なり合わないパネル(ナビゲーション パネル、複合エディター/ソース レベル デバッガー パネル、コンソール出力パネル[ 20 ])のタイル状のレイアウトは、Visual Studio製品ライン(2025年現在)に引き継がれています。Visual C++ 4.0 には MFC 4.0 が含まれており、Windows 95 および Windows NT 向けに設計されました。レガシー (Windows 3.x/DOS) プロジェクトのサポートを可能にするため、4.0 には Visual C++ 1.52 インストール CD が同梱されていました。サブスクリプションを通じて利用できるアップデートには、Microsoft Game SDK (後に DirectX SDK として別々にリリース) が付属する Visual C++ 4.1 と Visual C++ 4.2 がありました。Visual C++ 4.0 と MFC 4.0 のバージョン番号の互換性を確保するために、バージョン番号 3.0 はスキップされました。[ 21 ]
Visual C++ 4.2 は Windows 3.x ( Win32s ) 開発をサポートしていませんでした。[ 22 ]これはMac用のクロスプラットフォーム版が利用可能な最終バージョンであり、 PowerPC命令セットのコンパイルも可能になった点で 2.x バージョンと異なっていました。
Visual C++ 6.0(一般にVC6として知られ、Standard、Professional、Enterpriseエディションでスタンドアロン版として入手可能、またVisual Studio 6.0にバンドルされている)は、MFC 6.0を含み、1998年にリリースされました。[ 28 ] [ 29 ]このリリースは、MFCの期待されていたアップデートが含まれていなかったため、やや物議を醸しました。Visual C++ 6.0は現在でも非常に人気があり、レガシープロジェクトの保守によく使用されています。ただし、このバージョンはWindows XPでは問題があり、特にデバッグモードでは問題があります(たとえば、静的変数の値が表示されないなど)。デバッグの問題は、「Visual C++ 6.0 Processor Pack」と呼ばれるパッチで解決できます。[ 30 ]バージョン番号:12.00.8804
Visual C++ .NET 2002(Visual C++ 7.0とも呼ばれる)は、MFC 7.0を包含し、リンク時コード生成とデバッグ実行時チェック、.NET 1.0、Visual C#、およびマネージドC++をサポートして2002年にリリースされました。新しいユーザーインターフェイスは、Visual Basicのホットキーや慣例を多く使用していたため、C++開発者の間で不評だった理由の一つとなっています。バージョン番号:13.00.9466
Visual C++ .NET 2003 (Visual C++ 7.1 とも呼ばれる) は、MFC 7.1 を含み、.NET 1.1 とともに 2003 年にリリースされ、Visual C++ .NET 2002 のメジャーアップグレードであり、C99 の "long long" 構文をサポートする最初のバージョンでした。これは Visual C++ .NET 2002 のパッチとみなされていました。そのため、英語バージョンの Visual Studio .NET 2002 の所有者には、英語バージョンの Visual Studio .NET 2003 のアップグレード版が最小限の費用で出荷されました。Windows 98 が公式にサポートされている最低バージョンです。単純なプログラムは Windows 95 および NT 4.0 で動作しますが、より複雑なプログラムでは、ws2_32.dll が参照されたり、kernel32.dll に関数が欠落したりする可能性があります。コンパイラの最新バージョン(Visual C++ 2005)では、Windows 98以降にしか存在しないkernel32.dll内のIsDebuggerPresent関数への参照が含まれているため、単純なプログラムでも動作しません(Cライブラリを置き換えない限り)。バージョン番号:13.10.3077
Visual C++ 2005 (Visual C++ 8.0 とも呼ばれる) は、MFC 8.0 を含み、2005 年 11 月にリリースされました。このバージョンは .NET 2.0 をサポートし、以前のバージョン ( Managed C++ )を置き換える目的で.NET Framework ( C++/CLI ) をターゲットとした新しいバージョンの C++ が含まれています。ただし、CLI 用の Managed C++ は、コンパイラ オプションを介して引き続き使用できます。また、OpenMP も導入されました。Visual C++ 2005 では、Microsoft はTeam Foundation Serverも導入しました。Visual C++ 8.0 は、Visual Studio 6.0 を使用して作成された MFC AppWizard プロジェクトのコンパイルに問題があるため、書き換えが不可能な場合は、元の IDE を使用してレガシー プロジェクトのメンテナンスを継続できます。Visual C++ 2005 は、Windows 98およびWindows Me をターゲットにできる最後のバージョンです。[ 32 ] [ 33 ] SP1 バージョン (14.00.50727.762) は、 Windows Vista 用の Microsoft Windows SDK Updateでも利用可能です。
Visual C++ 2012 (Visual C++ 11.0 とも呼ばれる) は、2012 年 8 月 15 日にリリースされました。C++11 のサポートが改善され、Windows ランタイム開発のサポートが追加されました。[ 44 ]
Visual C++ 2013 (Visual C++ 12.0 とも呼ばれる) は、2013 年 10 月 17 日にリリースされました。C++11 およびC99 のサポートがさらに強化され、REST SDK が導入されました。[ 45 ]
Visual C++ 2015 (Visual C++ 14.0 とも呼ばれる) は 2015 年 7 月 20 日にリリースされました。[ 46 ] C++11/14/17 のサポートが改善されています。[ 47 ] Microsoft からの発表がないまま、Visual Studio 2015 Update 2 はコンパイル済みバイナリでテレメトリ呼び出しを生成し始めました。この問題について一部のユーザーが Microsoft に連絡した後、Microsoft は将来の Visual Studio 2015 Update 3 でコンパイルする際にこれらのテレメトリ呼び出しを削除すると述べました。[ 48 ] [ 49 ]問題の関数は、Visual Studio 2015 Update 3 の Visual C++ CRT 静的ライブラリから削除されました。
Visual C++ 2017 (Visual C++ 14.10 とも呼ばれる) は、2017 年 3 月 7 日にリリースされました。[ 50 ]
Visual C++ 2019 (Visual C++ 14.20 とも呼ばれる) は、2019 年 4 月 2 日にリリースされました。[ 51 ]
厳密には64ビット版のみ
Visual C++ 2022(Visual C++ 14.30とも呼ばれる)は2021年11月8日にリリースされました。[ 52 ]
Visual C++ 2022(Visual C++ 14.40とも呼ばれる)は2024年5月21日にリリースされた。[ 53 ]
Visual C++ 2026 (Visual C++ 14.50 とも呼ばれる) は、2025 年 11 月 11 日にリリースされました。[ 54 ]
内部バージョン番号付け
Visual C または C++ を扱う際には、考慮すべきバージョン番号がいくつかあります。その中で最も古く、最も元々のものはコンパイラ バージョン番号で、初期の Microsoft C コンパイラの時代から単調増加しています。これは、cl.exeオプションを指定せずにコマンドを単独で実行したときに返されるバージョンです。小数点以下 2 桁を取り、小数点を落とすと、これは C プリプロセッサ マクロの値にもなり_MSC_VER、CMake 変数の値にもなりますMSVC_VERSION。C マクロの長いバージョンは、_MSC_FULL_VERコンパイラのビルドをより細かく区別するために使用します。の例として、_MSC_VERMicrosoft C/C++ コンパイラのバージョン 19.33 を表す 1933 があり、の例として_MSC_FULL_VER193331630 があります。
Microsoft の CRT はPOSIXインターフェースの大部分を実装していますが、Visual C++ コンパイラはデフォルトでそのような関数の使用ごとに警告を発します。その理由は、C および C++ 標準では実装定義のインターフェースの前にアンダースコアの接頭辞が必要であるため、これらの関数の使用は非標準であるからです。[ 63 ]しかし、実際に POSIX に準拠しているシステムでは、これらのアンダースコア付きの名前は受け入れられないため、警告をオフにする方が移植性が高いです。
↑このページでは、ユーザーは Windows 98、Windows NT 4.0、または Windows 2000 も実行している必要があることを強調しています。http ://msdn2.microsoft.com/en-us/vstudio/aa718349.aspxから取得。
↑ダグラス・ボーリング著:プログラミング・マイクロソフト・Windows CE .NET、第3版、マイクロソフト・プレス刊、第3版(2003年6月25日)、ペーパーバック:1264ページ、 ISBN978-0735618848- Microsoft eMbedded Visual C++ 4.0 Service Pack 2 の付属 CD非推奨リンク(2013-02-11 にarchive.todayにアーカイブ)
↑ Microsoft Windows SDK ブログ。「リリース: Windows 7 および .NET Framework 4 用の Windows SDK」。
↑修正:Windows SDK v7.1がインストールされている状態でVisual Studio 2010 ProfessionalまたはVisual Studio 2010 ExpressをVisual Studio 2010 SP1にアップグレードすると、Visual C++コンパイラが削除される問題を修正しました。