MFCは1992年、MicrosoftのC/C++ 7.0コンパイラとともに、16ビット版WindowsでWindows API用の極めて軽量なオブジェクト指向C++ラッパーとして導入されました。当時、商用アプリケーションソフトウェアの開発において、 C++がC言語に取って代わり始めたばかりでした。MFCプログラムでは、 Windows APIを直接呼び出すことはほとんどありません。代わりに、プログラムはMicrosoft Foundation Classクラスからオブジェクトを作成し、それらのオブジェクトに属するメンバー関数を呼び出します。これらの関数の多くは、対応するAPI関数と名前を共有しています。[2]
MFCの特徴の一つは、多くの関数、マクロ、そして標準プリコンパイル済みヘッダー名「stdafx.h」のプレフィックスとして「Afx」が使用されていることです。初期の開発段階では、MFCとなるものは「Application Framework Extensions」と呼ばれ、「Afx」と略されていました。Microsoft Foundation Classes (MFC)という名称は、リリースサイクルの終盤で採用されたため、これらの参照を変更することができませんでした。
シリアル化、例外、および RTTI のマクロは、Microsoft C++ でこれらの機能が使用可能になる数年前から存在していました。Windows NT 3.1以降の Windows オペレーティング システム用の32 ビットバージョンの MFC では、言語機能を実装したコンパイラが使用され、カスタマイズされた実装を提供する代わりに、言語機能を単純にラップするようにマクロが更新され、上位互換性が実現されました。
MFC リボン リソース エディターを使用すると、開発者はRibbonX API のようなXMLベースの宣言型マークアップを使用する代わりに、リボンをグラフィカルに設計できます。オプションで、新しいリボン クラス メソッドのセットを呼び出すことによって、リボン コンポーネントを直接プログラムすることもできます。開発者は、都合に合わせてグラフィカルなリボン開発とプログラムによるリボン開発を組み合わせることができます。MFC アプリケーション ウィザードも、アプリケーションがリボンを使用するかドッキング ペインを使用するかを選択するチェック ボックスなど、新しい機能をサポートするようにアップグレードされました。新しい機能は新しいクラスで提供されるため、古いアプリケーションも引き続き実行できます。[6]この更新は、BCGSoft の BCGControlBar Library Professional Edition をベースに構築されています。[10] Microsoft は、リボンのユーザーに追加のライセンス要件を課しています。[11]これらには、Microsoft UI デザイン ガイドラインに準拠するという要件や、Microsoft Officeと競合するアプリケーションでの UI の使用を禁止する反競争条項が含まれます。
^ abcdefg 「マイクロソフト セキュリティ情報 MS11-025 - 重要: Microsoft Foundation Class (MFC) ライブラリの脆弱性により、リモートでコードが実行される可能性がある (2500212)」。Microsoft Learn。Microsoft。2011年4月12日。
^ 「MS11-025: Visual Studio .NET 2003 SP1 のセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
^ 「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
^ 「MS11-025: Visual C++ 2005 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
^ 「MS11-025: Visual C++ 2005 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年6月14日」。Microsoftサポート。Microsoft。2011年6月14日。
^ 「Visual C++再頒布可能パッケージはどこでダウンロードできますか?」Jags Blog . Microsoft. 2017年9月4日. 2019年6月10日閲覧。
^ 「FIX: .msiファイルを使用してアプリケーションをインストールすると、そのファイルがVisual C++ 2005ランタイムライブラリのマージモジュールとマージされている場合に「HRESULT: 0x80073715」エラーが発生する」Microsoft.com . 2021年1月25日。
^ vcredist/source_links/README.md > ソースリンクアーカイブ
^ 「Microsoft Visual C++ 2008 再頒布可能パッケージのセキュリティ更新プログラムの説明: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
^ 「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
^ 「MS11-025: Visual C++ 2008 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
^ 「MS11-025: Visual C++ 2008 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年6月14日」。Microsoftサポート。Microsoft。2011年6月14日。
^ 「Visual C++ - Visual Studio 2010のC++およびMFCの新機能の探索」Msdn.microsoft.com 。 2012年11月19日閲覧。
^ 「MS11-025: Visual C++ 2010 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
^ 「MS11-025: Visual C++ 2010 Service Pack 1 のセキュリティ更新プログラムについて: 2011年8月9日」。Microsoftサポート。Microsoft。2011年8月9日。
^ 「Visual C++ 2013およびVisual C++再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2017年1月8日閲覧。
^ 「Visual C++ 2013およびVisual C++再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2017年1月8日閲覧。
^ 「Visual C++ 2013再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2019年6月10日閲覧。
^ 「Microsoft Visual Studio 2015 Update 3 の累積的なサービスリリース (KB3165756)」。Microsoft Learn。Microsoft。2016年8月28日閲覧。