| 開発者 | マイクロソフト |
|---|---|
| 初回リリース | 1993年2月[1] |
| 安定版リリース | 14.40.33816
|
| 書かれた | C++ [2] |
| オペレーティング·システム | ウィンドウズ |
| プラットフォーム | IA-32、x86-64、ARM |
| 利用可能 | 英語、中国語(簡体字・繁体字)、チェコ語、フランス語、ドイツ語、イタリア語、日本語、韓国語、ポーランド語、ポルトガル語(ブラジル)、ロシア語、スペイン語、トルコ語 |
| タイプ | コンパイラ |
| ライセンス | 試用版とフリーウェア |
| Webサイト | 参考文献 |
Microsoft Visual C++ ( MSVC ) は、 MicrosoftのC、C++、C++/CLI、C++/CX プログラミング言語用コンパイラです。 MSVC はプロプライエタリ ソフトウェアです。当初はスタンドアロン製品でしたが、後にVisual Studioの一部となり、試用版とフリーウェアの両方で利用できるようになりました。 C++ コード、特にWindows API、DirectX、.NET用に記述されたコードの開発とデバッグを行うツールを備えています。
多くのアプリケーションが正しく機能するには、再配布可能なVisual C++ ランタイム ライブラリ パッケージが必要です。これらのパッケージは、サポートするアプリケーションとは別にインストールされることが多く、1 回のインストールで複数のアプリケーションでパッケージを使用できます。これらの Visual C++ 再配布可能パッケージとランタイム パッケージは、主に多くのアプリケーションが使用する標準ライブラリ用にインストールされます。[3]
歴史
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 年の Microsoft 初の C 製品でした。K&R Cに準拠していませんでした。
- C 2.0では大規模モデルのサポートが追加され、コードセグメントとデータセグメントの両方で最大1MiBまで使用できるようになりました。[4]
- C 3.0はマイクロソフト社内で開発された最初のバージョンでした。[5]このバージョンはK&Rおよび後のANSI標準との互換性を目的としていました。1984年初頭にマイクロソフト社内で使用されていました(WindowsおよびXenixの開発用)。1985年に製品として出荷されました。
- C 4.0 では最適化とソースレベル デバッガーのCodeViewが追加されました。
- C 5.0 では、ループの最適化と巨大メモリ モデル( 64 KB を超える配列) のサポートが追加されました。
- 1988 年にリリースされた C 5.1 では、OS/2 1.x 用のプログラムをコンパイルできました。14 枚の 5.25 インチ ディスク (うち 2 枚は 1.2 MB、その他は 360k) のバージョンには QuickC が含まれていました。OS/2 ソフトウェア開発キットに含まれていた 11 枚の 720k 3.5 インチ ディスク バージョンには MASM 5.1 (MSDOS と OS/2 1.x の両方で動作する単一の実行可能ファイル) が含まれていました。
- 1989年にリリースされたC 6.0では、極小メモリモデルのサポートとANSI C89標準のサポートが改善されました(ドキュメントには100%準拠ではないと明記されていますが、実用上は十分に近いようです)。プログラマーズワークベンチIDE、グローバルフロー分析、ソースブラウザ、新しいデバッガが追加されました。競合他社がすでに提供していたにもかかわらず、C++が含まれていなかったことに多くの人が驚きました。[6]
- C/C++ 7.0は1992年にリリースされました。OS/2のサポートは削除されました。コンパイルには386プロセッサと、それに含まれるDOSエクステンダである386MAXが必要でした。[7]ただし、ユーザーが独自のプログラムでDOSエクステンダをターゲットにできるようにするには、後にリリースされたサードパーティツールのいずれかが必要でした。[8] C++とMFC (Microsoft Foundation Class Library)1.0の組み込みサポートが追加されました。[9]
- Visual C++ 1.0はMFC 2.0を含み、1993年2月にリリースされた「Visual」C++の最初のバージョンでした。これはCfront 2.1に準拠しており[10]、2つのエディションがありました: [1]
- Visual C++ 1.5は1993年12月にリリースされ、MFC 2.5が含まれ、 MFCにOLE 2.0とODBCのサポートが追加されました。[12]これはCD-ROMでのみ提供されたVisual C++の最初のバージョンでした。
- Visual C++ 1.51 および 1.52 は、サブスクリプション サービスの一部として利用可能でした。
- Visual C++ 1.52b は 1.52 に似ていますが、コントロール開発キットは含まれていません。
- Visual C++ 1.52c は 1.5 のパッチ バージョンです。これはMicrosoft Windows 3.x 用の最後の、そしておそらく最も人気のある開発プラットフォームです。Microsoft Developer Networkから入手できます。
厳密に32ビットバージョン
- 1993年にリリースされたVisual C++ 1.0(元の名前:Visual C++ 32ビット版)は、Intel 386アーキテクチャ向けの32ビット開発(ホストとして32ビットWindows NTが必要)の最初のバージョンでした。 [13] 16ビットバージョン1.5が利用可能だったときにリリースされましたが、OLE2とODBCのサポートは含まれていませんでした。また、Visual C++ 1.5を含むVisual C++ 16/32ビットスイートと呼ばれるバンドルでも利用可能でした。[14]
- Visual C++ 2.0 は MFC 3.0 を含み、32 ビットのみに対応した最初のバージョンでした。当時コード名が「Chicago」だったWindows 95 はまだリリースされておらず、Windows NT の市場シェアも小さかったため、このバージョンは多くの点で時代を先取りしていました。Microsoft は Visual C++ 1.5 を 2.x リリースの一部として組み込み、2.1 まで更新しました。2.1 には Visual C++ 1.52 が含まれており、コントロール開発キット (CDK) の 16 ビット版と 32 ビット版の両方が含まれていました。Visual C++ 2.x はWin32s開発もサポートしていました。Microsoft Developer Networkから入手できます。MIPSおよびAlphaプロセッサ用の Visual C++ 2.0 RISC エディションと、 Macintosh ( 68000命令セット)用のクロスプラットフォーム エディションがありました。 [15]
- Microsoft Visual C++ Cross-Development Edition for the MacintoshはVisual C++のアドオンで、Windows Portability Libraryを導入しました。これは元々Windows Library for Macintosh [16] : 17 またはWindows Layer for the Macintosh (WLM) [17] : 16 と呼ばれていました。これにより開発者はWin32およびMFC APIに対してアプリケーションを作成し、68000アーキテクチャのMacintoshコンピューター用にコンパイルできるようになりました。[16]
- Visual C++ 2.1 および 2.2 は、サブスクリプションを通じて入手可能な 2.0 のアップデートでした。
- 1995 年 12 月 11 日にリリースされた Visual C++ 4.0 [18]では、 Developer Studio IDE が導入されました。当時は斬新だった、重なり合わないパネル (ナビゲーション パネル、エディター/ソース レベル デバッガー パネルの組み合わせ、コンソール出力パネル[19])のタイル レイアウトは、 Visual Studio製品ラインを通じて継続されています(2013 年現在)。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 が含まれていました。バージョン番号 3.0 は、Visual C++ 4.0 と MFC 4.0 のバージョン番号の整合性を確保するためにスキップされました。[20]
- Visual C++ 4.2はWindows 3.x ( Win32s )開発をサポートしていませんでした。 [21]これはMac用のクロスプラットフォーム版が利用可能になった最終バージョンであり、 PowerPC命令セットのコンパイルも可能である点で2.xバージョンと異なっていました。
- Visual C++ 5.0(Visual Studio 97にバンドル)にはMFC 4.21が含まれており、1997年4月28日にリリースされました[18]。4.2からのメジャーアップグレードでした。[22] Learning、 [23] Professional、[24] Enterprise、[25] RISCの4つのエディションがあります。 [26]
- Visual C++ 6.0 (通称 VC6、Standard、Professional、Enterprise の各エディションでスタンドアロンで利用可能、また Visual Studio 6.0 にバンドルされている) は、MFC 6.0 を同梱して 1998 年にリリースされました。[27] [28]このリリースは、MFC の予想通りのアップデートが含まれていなかったため、多少物議を醸しました。Visual C++ 6.0 は今でもかなり人気があり、レガシー プロジェクトのメンテナンスによく使用されています。ただし、このバージョンでは Windows XP、特にデバッグ モードで問題があります (たとえば、静的変数の値が表示されない)。デバッグの問題は、「Visual C++ 6.0 Processor Pack」と呼ばれるパッチで解決できます。[29]バージョン番号: 12.00.8804
- Visual C++ .NET 2002 (Visual C++ 7.0 とも呼ばれる) は、MFC 7.0 を含み、リンク時のコード生成とランタイム チェックのデバッグ、.NET 1.0、Visual C#およびManaged C++のサポートを備えて 2002 年にリリースされました。新しいユーザー インターフェイスでは、 Visual Basicのホット キーと規則の多くが使用されており、これが C++ 開発者の間で不評を招いた一因でした。[引用が必要]バージョン番号: 13.00.9466
- MFC 7.1 を含む Visual C++ .NET 2003 (Visual C++ 7.1 とも呼ばれる) は、.NET 1.1 とともに 2003 年にリリースされ、Visual C++ .NET 2002 のメジャー アップグレードであり、C99 の "long long" 構造をサポートする最初のバージョンでした。これは Visual C++ .NET 2002 のパッチと見なされました。したがって、Visual Studio .NET 2003 の英語版アップグレード バージョンは、Visual Studio .NET 2002 の英語版の所有者に最小限のコストで出荷されました。Windows 98 は、公式にサポートされている最も低いバージョンです。単純なプログラムは Windows 95 および NT 4.0 でも動作しますが、より複雑なプログラムでは、ws2_32.dll などが参照されたり、kernel32.dll で関数が欠落したりすることがあります。それ以降のバージョンのコンパイラ (Visual C++ 2005) では、Windows 98 以降にのみ存在する kernel32.dll の関数 IsDebuggerPresent への参照があるため、単純なプログラムでも動作しません (C ライブラリを置き換えない限り)。[引用が必要]バージョン番号: 13.10.3077
- eMbedded Visual C++ [30]の様々なバージョンは、 Windows CEオペレーティングシステムのいくつかのバージョンの開発に使用されました。当初はVisual C++ 6.0に追加されたツールで構成される開発環境に代わるものでした。eMbedded Visual C++は、Microsoft Visual Studio 2005によって独立した開発環境として置き換えられました。
32 ビット版と 64 ビット版
- MFC 8.0 を含む Visual C++ 2005 (Visual C++ 8.0 とも呼ばれる) は、2005 年 11 月にリリースされました。このバージョンは .NET 2.0 をサポートし、以前のバージョン ( Managed C++ )を置き換える目的で、 .NET フレームワークを対象とした新しいバージョンの C++ ( C++/CLI ) が含まれています。ただし、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 を対象にできる最後のバージョンです。[31] [32] SP1 バージョン (14.00.50727.762) は、 Microsoft Windows SDK Update for Windows Vistaでも入手できます。
- Visual C++ 2008 (Visual C++ 9.0 とも呼ばれる) は、2007 年 11 月にリリースされました。このバージョンは、.NET 3.5 をサポートしています。CLI 用の Managed C++ は、コンパイラ オプションを介して引き続き使用できます。デフォルトでは、Visual C++ 2008 ランタイム (静的および動的リンク) に対してコンパイルされたすべてのアプリケーションは、Windows 2000、Windows XP SP2 以降でのみ動作します。[33] [34] VC9 用にリリースされ、後に SP1 に含まれた機能パックでは、C++ TR1ライブラリ拡張のサポートが追加されました。SP1 バージョン (15.00.30729.01) は、 Microsoft Windows SDK for Windows 7でも使用できます。
- Visual C++ の一部のバージョンはItanium 2をサポートしていました。
- Visual C++ 2010 (Visual C++ 10.0 とも呼ばれる) は、2010 年 4 月 12 日にリリースされました。SQL Server Compactデータベースを使用して、 IntelliSense情報を含むソース コードに関する情報を格納し、IntelliSense とコード補完のサポートを向上させました。[35]ただし、Visual C++ 2010 は C++/CLI の IntelliSense をサポートしていません。[36]このバージョンでは、Parallel Patterns Libraryと呼ばれる C++並列コンピューティングライブラリ、 C++11の部分的なサポート、 Edison Design Groupフロント エンドに基づく大幅に改善された IntelliSense 、 [37]およびコンパイラと生成されたコードの両方のパフォーマンスの改善が追加されています。[38]このバージョンは .NET 4.0 上に構築されていますが、マシン コードへのコンパイルをサポートしています。部分的な C++11 のサポートは、主に 6 つのコンパイラ機能で構成されています: [39]ラムダ、右辺値参照、auto、decltype、static_assert、および nullptr。 C++11 はライブラリ機能もサポートしています (例: TR1 コンポーネントを std::tr1 名前空間から std 名前空間に直接移動する)。可変長テンプレートも検討されましたが、優先度が低いため将来のバージョンまで延期されました。これは、実装コストのかかる他の機能 (ラムダ、右辺値参照) とは異なり、可変長テンプレートは少数のライブラリ作成者のみにメリットがあり、大多数のコンパイラエンドユーザーにはメリットがないという事実に起因しています。[40]既定では、Visual C++ 2010 ランタイムに対してコンパイルされたすべてのアプリケーションは、Windows XP SP2 以降でのみ動作します。RTM バージョン (16.00.30319) は、Windows SDK for Windows 7 および .NET Framework 4 (WinSDK v7.1) でも使用できます。[41] SP1 バージョン (16.00.40219) は、Visual Studio 2010 Service Pack 1 の一部として、または Windows SDK 7.1 用の Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラムを通じて使用できます。[42]
- Visual C++ 2012(Visual C++ 11.0とも呼ばれる)は2012年8月15日にリリースされました。C++11のサポートが強化され、Windowsランタイム開発がサポートされています。[43]
- Visual C++ 2013(Visual C++ 12.0とも呼ばれる)は2013年10月17日にリリースされました。C++11とC99のサポートが強化され、REST SDKが導入されました。[44]
- Visual C++ 2015(Visual C++ 14.0とも呼ばれる)は、2015年7月20日にリリースされました。[45] C++11/14/17のサポートが改善されています。[46] Microsoftからの発表なしに、Visual Studio 2015 Update 2はコンパイルされたバイナリでテレメトリ呼び出しを生成し始めました。一部のユーザーがこの問題についてMicrosoftに連絡した後、Microsoftは将来のVisual Studio 2015 Update 3でコンパイルするときにこれらのテレメトリ呼び出しを削除すると述べました。[47] [48]問題の関数は、Visual Studio 2015 Update 3のVisual C++ CRT静的ライブラリから削除されました。[引用が必要]
- Visual C++ 2017(Visual C++ 14.1とも呼ばれる)は2017年3月7日にリリースされました。[49]
- Visual C++ 2019(Visual C++ 14.20とも呼ばれる)は2019年4月2日にリリースされました。[50]
- Visual C++ 2022(Visual C++ 14.30とも呼ばれる)は2021年11月8日にリリースされました。[51]
内部バージョン番号
Visual C または C++ で作業する場合、考慮すべきバージョン番号がいくつかあります。これらのうち最も古く、最も独創的なのはコンパイラ バージョン番号で、Microsoft C コンパイラの初期の時代から単調に増加してきました。これは、cl.exeオプションなしでコマンドを単独で実行したときに返されるバージョンです。小数点以下の 2 桁を取り、小数点を省略すると、これは C プリプロセッサ マクロの値にもなり、_MSC_VERCMake 変数の値にもなりますMSVC_VERSION。C マクロの長いバージョンは、_MSC_FULL_VERコンパイラのビルドをより細かく区別するためのものです。たとえば、 は_MSC_VER1933 で、Microsoft C/C++ コンパイラのバージョン 19.33 を表します。 は_MSC_FULL_VER193331630 です。
Visual 製品バージョン (例: 「17.3.4」) は、コンパイラのバージョン 19.33 がパッケージ化された Visual Studio のバージョンを示します。次に、Microsoft Visual C/C++ ランタイム ライブラリ バージョン (例: 「14.3」) があります。このバージョンから、ランタイム ライブラリ バージョンの最初の 3 桁から小数点以下を切り捨てることで取得できるツールセット バージョン (例: 「143」) も推測できます。これには、Visual C/C++ ランタイム ライブラリのほか、コンパイラ、リンカー、アセンブラ、その他のビルド ツール、および対応するライブラリとヘッダー ファイルが含まれます。以下は、既知の相関バージョン番号の (スクレイピング可能な) 表です。
互換性
アビ
Visual C++ コンパイラのABI は、これまで主要なコンパイラ リリース間で変更されてきました。[54]これは特に STL コンテナーの場合に当てはまり、コンテナーのサイズはコンパイラ リリース間で大きく異なります。[55]そのため、Microsoft は、異なるコンパイラ バージョンを使用してコンパイルされたクライアント コードを有効にする場合、モジュール境界で C++ インターフェイスを使用しないことを推奨しています。Microsoft は、C++ の代わりに、コンパイラ リリース間で安定した ABI を持つように設計されたC [56]またはCOM [57]インターフェイスを使用することを推奨しています。
すべての14.x MSVCリリースには安定したABIがあり、[58]これらのバージョンでビルドされたバイナリは、次の制限に注意しながら、前方互換性のある方法で混在させることができます。
- 使用されるツールセット バージョンは、リンクされたバイナリをビルドするために使用される最高のツールセット バージョン以上である必要があります。
- MSVC 再頒布可能バージョンは、アプリケーション コンポーネントで使用されるツールセット バージョン以上である必要があります。
- /GL (プログラム全体の最適化) でコンパイルされた静的ライブラリまたはオブジェクト ファイルはバージョン間でバイナリ互換性がないため、まったく同じツールセットを使用する必要があります。
C ランタイムライブラリ
Visual C++ には、さまざまなバージョンの C ランタイム ライブラリが付属しています。[59]つまり、ユーザーは利用可能なライブラリのいずれかを使用してコードをコンパイルできます。ただし、同じプログラムで異なるコンポーネント ( DLL、EXE ) を使用する場合、問題が発生する可能性があります。典型的な例は、異なるライブラリを使用するプログラムです。影響を理解していない限り、ユーザーはプログラムのすべてのコンポーネントに同じC ランタイムを使用する必要があります。Microsoft は、起こりうる問題を回避するために、マルチスレッドのダイナミック リンク ライブラリ (/MD または /MDd コンパイラ オプション)を使用することを推奨しています。 [59]
POSIX
Microsoft の CRT はPOSIXインターフェイスの大規模なサブセットを実装していますが、Visual C++ コンパイラはデフォルトでそのような関数を使用するたびに警告を発します。その理由は、C および C++ 標準では実装定義のインターフェイスの前にアンダースコア プレフィックスが必要なため、これらの関数の使用は非標準であるからです。 [60]ただし、実際に POSIX に準拠しているシステムでは、これらのアンダースコア付きの名前は受け入れられないため、警告をオフにする方が移植性が高くなります。
C
この製品はCプログラミング言語用のIDEとして始まったが、長年にわたり、その言語に対するコンパイラのサポートは1989年のC標準のオリジナル版にのみ準拠しており、標準のC99改訂版には準拠していなかった。C99の発行から10年以上経った2011年になっても、C99をサポートする計画はなかった。[61]
Visual C++ 2013では、CモードでのさまざまなC99機能(指定初期化子、複合リテラル、_Bool型など)のサポートがようやく追加されましたが、[62]まだ完全ではありませんでした。[63] Visual C++ 2015では、C99のサポートがさらに改善され、コンパイラでまだサポートされていないC99言語機能を必要とする機能を除き、C99標準ライブラリが完全にサポートされました。[64]
標準のC11リビジョンからの変更のほとんどは、 Visual C++ 2017ではまだサポートされていませんでした。 [65]たとえば、_Genericキーワードによるジェネリック選択はコンパイラでサポートされておらず、構文エラーが発生します。[66]
プリプロセッサは2018年に全面的に改良され、C11が予定されている。[67]
完全な C11 準拠は当社のロードマップに含まれており、プリプロセッサの更新はそのプロセスの第一歩にすぎません。C11
_Generic機能は実際にはプリプロセッサの一部ではないため、まだ実装されていません。実装されると、従来のプリプロセッサ ロジックが使用されているか更新されたプリプロセッサ ロジックが使用されているかに関係なく、この機能が独立して動作すると期待しています。
_Generic2020年2月現在、MSVCへのサポートが約束されている。[68]
2020年9月、マイクロソフトは、MSVCでのC11およびC17標準サポートがバージョン16.8で提供されると発表した。[69]これにはオプション機能は含まれていなかったが、マイクロソフトは後日アトミックとスレッドのサポートを追加する予定であることを示した。バージョン17.5では、アトミックの部分的(アトミックロックが欠落しているため)かつ実験的(コンパイラフラグの背後に隠れていることを意味する/experimental:c11atomics)サポートが追加され[70]、バージョン17.8では、今度はコンパイラフラグの背後ではなく、スレッドのサポートが追加されました。[71] [72]
C++
デフォルト設定では、MSVCは2段階の名前検索を行わないため、広範囲の無効なコードにフラグを立てることができません。ほとんどのチェックはテンプレートのインスタンス化まで延期されます。最近のバージョンではこの動作が改善されていますが、コマンドラインオプションで有効にする必要があります/permissive-。[73]
受付
BYTE は1989 年 2 月に、Microsoft C 5.1 の OS/2 サポート、対話型開発用の QuickC、CodeView デバッガを「素晴らしい」と評し、これを承認した。Watcom C はわずかに高速なコードを生成するが、同誌は「開発者は Microsoft のより使いやすく強力なツールを好むかもしれない」と述べた。[74]
参考文献
- ^ ab 「Visual C++ が Windows サポートを追加」。InfoWorld。1993年 2 月 22 日。17 ページ。
- ^ Lextrait, Vincent (2010 年 1 月). 「The Programming Languages Beacon, v10.0」。2012 年 5 月 30 日時点のオリジナルよりアーカイブ。2010 年3 月 14 日閲覧。
- ^ 「これらの Microsoft Visual C++ 再頒布可能ファイルは必要ですか?」。 Ask Leo!。 2012 年 11 月 18 日閲覧。
- ^ Computer Language - Issue 06 (1985-02)(CL Publications)(米国). 1985年2月。
- ^ Leibson, Steve (1985-02-01). 「ソフトウェアレビュー: 専門家チームが 21 個の C コンパイラを分析」. Computer Language . 2020 年 6 月 5 日閲覧。
- ^ Ladd, Scott Robert (1990 年 8 月 1 日)。「Microsoft C 6.0 による最適化」。
- ^ Myers, Ben (1992-07-01). 「Microsoft C/C++」. PC Magazine . Ziff Davis . p. 387. 2023年12月21日閲覧。
- ^ 「ニュース/ソフトウェア パイプラインが発表されました」。InfoWorld。InfoWorld Media Group。1993 年 3 月 15 日。2023年 12 月 21 日閲覧。
- ^ http://support.microsoft.com/kb/196831 から取得。
- ^ ab 「Visual C++ は強力な開発ツールです」。InfoWorld 1993年 6 月 21 日、p. 94。
- ^ 「Rival DOS Extenders がショーでデビュー」InfoWorld 1993 年 3 月 1 日、p. 18。
- ^ 「Visual C++ 1.5 は OLE と ODBC を統合します」。InfoWorld。1993年 11 月 8 日。5 ページ。
- ^ 「Microsoft が 32 ビット Visual C++ をプレリリース予定」InfoWorld 1993 年 7 月 19 日、p. 12。
- ^ 「C++ IDE の進化」InfoWorld 1994 年 4 月 4 日、p. 79。
- ^ 「Microsoft Visual C++ 戦略」。
- ^ ab Cullens, Chane; Blackwell, Ken (1995). Visual C++ を使用したクロスプラットフォーム開発。M&T Books. ISBN 1-55851-428-7. 2024年1月27日閲覧。
- ^ Plamondon, James (1997年10月9日). 「Generalized Evangelism Timeline」(PDF) . Microsoft Corporation. 2007年2月2日時点のオリジナル(PDF)よりアーカイブ。 2024年1月27日閲覧。
- ^ ab 「Obsolete Products」。2005年8月14日時点のオリジナルよりアーカイブ。
- ^ Toth, Viktor (1996). "1". Visual C++ 4.0 unleashed. インディアナポリス: SAMS Publishing . ISBN 9780672308741. 2013年7月26日閲覧。
- ^ 「Visual Studio の歴史 (パート 3)」。2021 年 8 月 6 日。
- ^ 「Visual C++ 4.0 から 4.2 への主な変更点」。2010 年 2 月 28 日時点のオリジナルよりアーカイブ。2018年 4 月 18 日閲覧。
- ^ 「Visual C++ 4.2 から 5.0 への主な変更点」。
- ^ 「Microsoft Visual C++ 5.0 Learning Edition」。Microsoft。1999年4月27日時点のオリジナルよりアーカイブ。
- ^ 「Microsoft Visual C++ 5.0 Professional Edition」。Microsoft。1999年4月27日時点のオリジナルよりアーカイブ。
- ^ 「Microsoft Visual C++ 5.0 Enterprise Edition」。Microsoft。1999年4月17日時点のオリジナルよりアーカイブ。
- ^ 「Microsoft Visual C++ 5.0 RISC Edition」。Microsoft。1999年4月29日時点のオリジナルよりアーカイブ。
- ^ Shields, Nathan P. (2018 年 6 月 8 日). 「刑事告訴」.米国司法省. p. 128.
これだけが決定的なリンクではありません。1998 年にリリースされた Visual C++ 6.0 は、それ以降のバージョンの Visual C++ とは異なり、実行するために Microsoft の .NET フレームワークをインストールする必要がないため、今でも支持者がいます。
- ^ 「Visual C++ 5.0 から 6.0 への主な変更点」。2008 年 9 月 14 日時点のオリジナルよりアーカイブ。
- ^ このページでは、ユーザーが Windows 98、Windows NT 4.0、または Windows 2000 も実行している必要があることを強調しています。http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx から取得。
- ^ Douglas Boling : Programming Microsoft Windows CE .NET、第 3 版Microsoft Press; 第 3 版 (2003 年 6 月 25 日) ペーパーバック: 1264 ページISBN 978-0735618848 - Microsoft eMbedded Visual C++ 4.0 Service Pack 2 付属 CD アーカイブ 2013-02-11 at archive.today
- ^ 方法: WINVER と _WIN32_WINNT を変更する
- ^ 重大な変更
- ^ Windows プラットフォーム (CRT)
- ^ 「Visual C++ 2008 の重大な変更点」。2023 年 5 月 25 日。
- ^ Visual C++ チーム ブログ。「IntelliSense、パート 2: 将来」 。2008年3 月 12 日閲覧。
- ^ 「Visual Studio 2010 で IntelliSense が C++/CLI でサポートされない理由」 。2011年3 月 13 日閲覧。
- ^ Visual C++ チーム ブログ (2009 年 5 月 27 日)。「Intellisense の再構築」。
- ^ Visual C++ チーム ブログ。「Visual Studio 2010 での Visual C++ コード生成」。
- ^ 「VC10 の C++0x コア言語機能: 表」。
- ^ 「Stephan T. Lavavej: nullptr について知りたいことすべて」。
- ^ 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++ コンパイラが削除されます。
- ^ 「Visual Studio 2012 の Visual C++ の新機能」。Microsoft Developer Network。Microsoft。2012年 11 月 29 日。2015 年9 月 20 日に閲覧。
- ^ 「Visual Studio 2013 の Visual C++ の新機能」。Microsoft Developer Network。Microsoft。2015年 4 月 28 日。2015 年9 月 20 日閲覧。
- ^ Eric Battalio (2015 年 7 月 20 日)。「Visual Studio 2015 RTM が利用可能になりました」。Visual C++ チーム ブログ。Microsoft。
- ^ Stephan T. Lavavej (2015 年 6 月 19 日)。「VS 2015 RTM の C++11/14/17 機能」。Visual C++ チーム ブログ。Microsoft。
- ^ Microsoft の C++ バイナリへのテレメトリの自動挿入について検討する
- ^ 「Visual Studio がバイナリにテレメトリ関数呼び出しを追加? • /r/cpp」。reddit。2016年 5 月 7 日。2016年 8 月 17日閲覧。
- ^ Julia Liuson (2017 年 3 月 7 日)。「Visual Studio 2017 の一般提供開始のお知らせ...その他」。Visual Studio チーム ブログ。Microsoft。
- ^ Amanda Silver (2019 年 2 月 14 日)。「4 月 2 日の Visual Studio 2019 のリリースにぜひご参加ください!」。Visual Studio チーム ブログ。Microsoft。
- ^ Amanda Silver (2021 年 11 月 8 日)。「Visual Studio 2022 が利用可能になりました」。Visual Studio チーム ブログ。Microsoft。
- ^ 「定義済みコンパイラマクロ / Wiki / コンパイラ」。dev.to。2018年5月22日。 2023年2月20日閲覧。
- ^ 「定義済みマクロ / Microsoft Learn」。learn.microsoft.com。2022年8月8日。 2023年5月26日閲覧。
- ^ Microsoft MSDN: Visual C++ の重大な変更
- ^ Microsoft MSDN: コンテナー (Modern C++)
- ^ Microsoft MSDN: ABI 境界での移植性 (Modern C++)
- ^ Microsoft フォーラム: Visual C++ バージョン間のバイナリ互換性 2013-02-16 にarchive.todayでアーカイブ
- ^ docs.microsoft.com: Visual Studio 2015、2017、2019 間の C++ バイナリ互換性
- ^ ab C ランタイムライブラリ
- ^ 「互換性」。Microsoft : CRT ライブラリの機能。2022 年 10 月 26 日。
- ^ 「C99 サポート」 。Microsoft Connect。2016年 3 月 4 日時点のオリジナルよりアーカイブ。2015 年 9 月 21 日閲覧。
- ^ 「Visual Studio 2013 の Visual C++ の新機能」。Microsoft Developer Network。Microsoft。2015年 4 月 28 日。
- ^ Pat Brenner (2013 年 7 月 19 日)。「Visual Studio 2013 での C99 ライブラリ サポート」。Visual C++ チーム ブログ。Microsoft。
- ^ 「Visual Studio 2015 の Visual C++ の新機能」。Microsoft Developer Network。Microsoft。2018年 1 月 3 日。
- ^ 「チュートリアル: コマンド ラインで C プログラムをコンパイルする」。Visual C++ ドキュメント。Microsoft。2022 年 5 月 10 日。
- ^ 「MSVC 2017 は C の _Generic (型ジェネリック マクロ) をサポートしていません」。
- ^ Luvsanbat、Bat-Ulzii (2018 年 7 月 6 日)。「MSVC プリプロセッサの準拠に向けた進捗状況」。Visual Studio チーム ブログ。Microsoft。2024 年 3 月 3 日時点のオリジナルよりアーカイブ。
- ^ 「C++20 の機能と修正」。reddit。2020年7 月 3 日。
- ^ 「C11 および C17 標準サポートが MSVC に登場」。2020 年 9 月 14 日。
- ^ 「Visual Studio 2022 バージョン 17.5 Preview 2 の C11 Atomics」。2022 年 12 月 13 日。
- ^ 「Visual Studio 2022 バージョン 17.8 Preview 2 の C11 スレッド」。2023 年 9 月 26 日。
- ^ Murphy, Adrian (2023-11-14). 「Visual Studio 17.8 が利用可能になりました!」. Visual Studio ブログ. 2024-01-12に閲覧。
- ^ 「2 フェーズの名前検索サポートが MSVC に導入」2017 年 9 月 11 日。
- ^ Apiki, Steven; Udell, Jon (1989年2月). 「Smoothing Out C」. BYTE . pp. 170– 186. 2024年10月8日閲覧。
さらに読む
- Johnson, Brian (2004 年 8 月 8 日)。「Visual C++ 2005 Express を使用した Win32 アプリケーションの構築」。Brian Johnson の Startup Developer ブログ。Microsoft – Microsoft Docs アーカイブ経由。
- Springfield, Jim (2015 年 9 月 25 日)。「Microsoft C/C++ コンパイラの刷新」。C ++ チーム ブログ。Microsoft。
外部リンク
- 公式サイト
- Visual Studio エディションの C++ ツールと機能
- Microsoft C++ ビルド ツール
- C9:: Microsoft Channel 9の GoingNative
