Microsoft Foundation Class ライブラリ

Microsoft Foundation Class ライブラリ
開発者マイクロソフト
初回リリース1992年; 33年前 (1992)
安定版リリース
14.22.27821.0 / 2019年7月24日[1]
書かれたC++
オペレーティング·システムマイクロソフトウィンドウズ
ライセンス独自の
Webサイトdocs.microsoft.com/en-us/cpp/mfc/mfc-デスクトップアプリケーション

Microsoft Foundation Class ライブラリ(MFC) は、Windows用のデスクトップ アプリケーションを開発するためのC++ オブジェクト指向 ライブラリです。

MFCは1992年にMicrosoftによって導入され、瞬く間に広く普及しました。Microsoftはその後も代替アプリケーションフレームワークを導入してきましたが、MFCは依然として広く使用されています。

歴史

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)という名称は、リリースサイクルの終盤で採用されたため、これらの参照を変更することができませんでした。

MFC 8.0 は Visual Studio 2005 でリリースされました。MFC 9.0 は Visual Studio 2008 でリリースされました。2008 年 4 月 7 日に、マイクロソフトは Visual Studio 2008 および MFC 9 の帯域外更新として MFC クラスの更新をリリースしました。[3] [4] [5]この更新には、リボンと関連 UI ウィジェット、完全にカスタマイズ可能なツール バー、自由にフローティングまたは任意の側にドッキングできるドッキング ペイン、およびドキュメントタブを含む新しいユーザーインターフェイス構造が含まれています。[6]

MFCは当初、Visual Studioの商用版の機能でした。そのため、フリーウェアのVisual C++ Expressには含まれていません。[7]ただし、2014年に導入されたVisual StudioのCommunityエディションにはMFCが含まれています。

BorlandのTurbo C++コンパイラ向けに設計されたObject Windows Library (OWL)は、Borlandがほぼ同時期に発表した競合製品でした。最終的にBorlandはOWLの開発を中止し、MFCのヘッダー、ライブラリ、DLLの配布をMicrosoft [8]から短期間ライセンス供与されましたが、MFCへの完全な統合サポートは提供されませんでした。Borlandは後に、OWLフレームワークに代わるVisual Component Libraryをリリースしました。

特徴

MFCは、Windows APIの一部をC++クラスでラップしたライブラリであり、デフォルトのアプリケーションフレームワークを使用できるようにする機能も含まれています。ハンドル管理された多くのWindowsオブジェクトに加え、定義済みウィンドウやコモンコントロール用のクラスも定義されています。

MFCは導入当初、Windowsメッセージ処理(メッセージマップ[9]経由)、例外実行時型識別(RTTI)、シリアル化、動的クラスインスタンス化のためのC++マクロを提供していました。メッセージ処理マクロは、無駄な仮想テーブルの使用を避けることでメモリ消費量を削減すること、そしてVisual C++が提供する様々なツールが言語全体を解析することなくコードを編集・操作するためのより具体的な構造を提供することを目的としていました。メッセージ処理マクロは、 C++が提供する仮想関数メカニズムに取って代わりました。

シリアル化、例外、および 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 の使用を禁止する反競争条項が含まれます。

MFC は、静的ライブラリをリンクするか、MFC DLL を追加することで使用できます

バージョン

製品図書館ファイルバージョン発売日備考
名前バージョン
マイクロソフト C/C++ 7.0mafxcw.lib1992年2月26日[12] [13]
マイクロソフトビジュアルC++ 1.0ビジュアルC++ 1.0mfc200.dll2.0.0.11993年2月
ビジュアルC++ 1.5mfc250.dll2.5.0.01993年12月
ビジュアルC++ 1.51mfc250.dll2.5.1.01994年9月Visual C++ 2.0 でリリース
ビジュアルC++ 1.52mfc250.dll2.5.2.01995年1月Visual C++ 2.1 でリリース
ビジュアルC++ 1.52bmfc250.dll2.5.3.01995年7月Visual C++ 2.2 でリリース
ビジュアルC++ 1.52cmfc250.dll2.5.3.01995年11月Visual C++ 4.0 でリリース
マイクロソフトビジュアルC++ 2.0ビジュアルC++ 2.0mfc30.dll3.0.0.01994年9月
ビジュアルC++ 2.1mfc30.dll3.1.0.01995年1月
ビジュアルC++ 2.2mfc30.dll3.2.0.01995年7月
マイクロソフトビジュアルC++ 4.0ビジュアルC++ 4.0mfc40.dll4.0.0.52771995年11月
ビジュアルC++ 4.1mfc40.dll4.1.0.60381996年3月
ビジュアルC++ 4.1amfc40.dll4.1.0.6130
ビジュアルC++ 4.1bmfc40.dll4.1.0.6139
ビジュアルC++ 4.2mfc42.dll4.2.0.60681996年7月
ビジュアルC++ 4.2bmfc42.dll4.2.0.6256
マイクロソフトビジュアルC++ 5.0ビジュアルC++ 5.0mfc42.dll4.21.0.70221997年3月19日
ビジュアルC++ 5.0 SP14.21.0.71601997年7月3日
ビジュアルC++ 5.0 SP24.21.0.71601997年8月26日
ビジュアルC++ 5.0 SP34.21.0.73031997年12月4日
マイクロソフトビジュアルC++ 6.0ビジュアルC++ 6.0mfc42.dll6.0.8168.01998年9月2日
ビジュアルC++ 6.0 SP16.0.8267.01998年10月30日
ビジュアルC++ 6.0 SP26.0.8267.01999年1月21日
ビジュアルC++ 6.0 SP36.0.8447.01999年5月21日
ビジュアルC++ 6.0 SP46.0.8665.02000年6月27日
ビジュアルC++ 6.0 SP56.0.8665.02001年2月26日
ビジュアルC++ 6.0 SP66.0.9782.02004年3月29日
マイクロソフトビジュアルC++ .NET 2002Visual C++ .NET 2002 (Visual C++ 7.0)mfc70.dll7.0.9466.02002年2月13日
Visual C++ .NET 2002 + MS07-012 (KB924641)7.0.9801.02008年2月27日
ビジュアルC++ .NET 2002 SP17.0.9955.02005年3月8日
Visual C++ .NET 2002 SP1 + MS07-012 (KB924642)7.0.9975.02008年2月27日
マイクロソフトビジュアルC++ .NET 2003Visual C++ .NET 2003 (Visual C++ 7.1)mfc71.dll7.10.3077.02003年4月24日
Visual C++ .NET 2003 + MS07-012 (KB924643)7.10.5057.02008年2月27日
ビジュアルC++ .NET 2003 SP17.10.6030.02006年8月15日
Visual C++ .NET 2003 SP1 + MS07-012 (KB927696)7.10.6041.02008年2月27日
Visual C++ .NET 2003 SP1 + MS09-035 (KB971089) [14]7.10.6101.02009年7月28日
Visual C++ .NET 2003 SP1 + MS11-025 (KB2465373) [15] [16]7.10.6119.02011年4月12日
マイクロソフトビジュアルC++ 2005Visual C++ 2005 (Visual C++ 8.0)mfc80.dll8.0.50727.42 (再配布版 8.0.50727.42/8.0.50727.42 に含まれています)2006年4月10日
ビジュアルC++ 2005 SP18.0.50727.762 (再配布版 8.0.56336/8.0.56336 に含まれています)2007年8月27日
Visual C++ 2005 SP1 + MS09-035 (KB973544) [14] [17]8.0.50727.4053 (再配布版 8.0.59192/8.0.59193 に含まれています)2009年7月28日
Visual C++ 2005 SP1 + MS11-025 (KB2467175) [15] [18]8.0.50727.55922011年4月12日
Visual C++ 2005 SP1 + MS11-025 (KB2538242) [15] [19]8.0.50727.6195(再配布版8.0.61000/8.0.61001に含まれる[20]2011年6月14日
Visual C++ 2005 SP1 + MS11-025 (KB2643995) [21] [22]8.0.50727.62292021-01-25?
マイクロソフトビジュアルC++ 2008Visual C++ 2008 (Visual C++ 9.0)mfc90.dll9.0.21022.82007年11月19日
Visual C++ 2008 + MS09-035 (KB973551) [14] [23]9.0.21022.2182009年7月28日
Visual C++ 2008 機能パック9.0.30411.02008年4月7日更新日: 2008年4月22日
ビジュアルC++ 2008 SP19.0.30729.12008年8月11日
Visual C++ 2008 SP1 + MS09-035 (KB973552) [14] [24]9.0.30729.41482009年7月28日
Visual C++ 2008 SP1 + MS11-025 (KB2467174) [15] [25]9.0.30729.55702011年4月12日
Visual C++ 2008 SP1 + MS11-025 (KB2538243) [15] [26]9.0.30729.6161 (インストーラーのバージョンは 9.0.30729.5677)2011年6月14日
マイクロソフトビジュアルC++ 2010Visual C++ 2010 (Visual C++ 10.0)mfc100.dll10.0.30319.12010年4月12日[27]
Visual C++ 2010 + MS11-025 (KB2467173) [15] [28]10.0.30319.4152011年4月12日
ビジュアルC++ 2010 SP110.0.40219.12011年3月10日
Visual C++ 2010 SP1 + MS11-025 (KB2565063) [15] [29]10.0.40219.3252011年8月9日
マイクロソフト ビジュアル C++ 2012Visual C++ 2012 (Visual C++ 11.0)mfc110.dll11.0.50727.12012年9月12日
Visual C++ 2012 アップデート 111.0.51106.12012年11月26日
Visual C++ 2012 アップデート 311.0.60610.12013年6月26日
Visual C++ 2012 アップデート 411.0.61030.02013年11月13日
マイクロソフト ビジュアル C++ 2013Visual C++ 2013 (Visual C++ 12.0)mfc120.dll12.0.21005.12013年10月17日
Visual C++ 2013 アップデート 212.0.30501.02014年5月12日
Visual C++ 2013 アップデート 5 + KB3138367 [30]12.0.40649.52016年2月ですか?
Visual C++ 2013 アップデート 5 + KB3179560 [31]12.0.40660.02016年7月?
Visual C++ 2013 アップデート 5 + KB4032938 [32]12.0.40664.02017年7月18日
マイクロソフト ビジュアル C++ 2015Visual C++ 2015 (Visual C++ 14.0)mfc140.dll14.0.23026.02015年7月20日
Visual C++ 2015 アップデート 114.0.23506.02015年11月30日
Visual C++ 2015 アップデート 214.0.23918.02016年3月30日
Visual C++ 2015 アップデート 314.0.24210.02016年6月27日
Visual C++ 2015 アップデート 314.0.24212.02016年8月18日
Visual C++ 2015 アップデート 3 + KB3165756 [33]14.0.24215.12016年9月14日
Visual C++ 2015 アップデート 314.0.24245.02018年11月13日
Visual C++ 2015 アップデート 314.0.24247.22023年6月13日
マイクロソフト Visual C++ 2017ビジュアルC++ 15.0mfc140.dll14.10.25008.02017年3月7日
Visual C++ 15.1?14.10.25017.02017年4月5日ですか?
ビジュアルC++ 15.214.11.25325.02017年5月10日
ビジュアルC++ 15.414.12.25810.02017年10月9日
ビジュアルC++ 15.614.13.26020.02018年3月5日
ビジュアルC++ 15.714.14.26405.02018年5月7日
Visual C++ 15.7.3?14.14.26429.42018年5月31日
ビジュアルC++ 15.814.15.26706.02018年8月14日
ビジュアルC++ 15.914.16.27012.62018年11月13日
ビジュアルC++ 15.9.514.16.27024.12019年1月8日
ビジュアルC++ 15.9.614.16.27026.12019年1月24日
ビジュアルC++ 15.9.914.16.27027.12019年3月12日
ビジュアルC++ 15.9.1514.16.27033.02019年8月13日
ビジュアルC++ 15.9.6714.16.27052.02024年10月8日
マイクロソフト Visual C++ 2019ビジュアルC++ 16.0.0mfc140.dll14.20.27508.12019年4月2日
ビジュアルC++ 16.0.1014.20.27519.02019年12月10日
ビジュアルC++ 16.1.014.21.27702.22019年5月21日
ビジュアルC++ 16.2.014.22.27821.02019年7月24日
ビジュアルC++ 16.3.014.23.27820.02019年9月23日
ビジュアルC++ 16.4.014.24.28127.42019年12月3日
ビジュアルC++ 16.5.014.25.28508.32020年3月16日
ビジュアルC++ 16.6.014.26.28720.32020年5月19日
ビジュアルC++ 16.6.314.26.28808.12020年6月30日
ビジュアルC++ 16.7.014.27.29016.02020年8月5日
ビジュアルC++ 16.7.514.27.29112.02020年9月29日
ビジュアルC++ 16.7.814.27.29114.0 [注 1]2020年11月10日
ビジュアルC++ 16.8.014.28.29325.22020年11月10日
ビジュアルC++ 16.8.214.28.29334.02020年11月19日
ビジュアルC++ 16.9.014.28.29910.02021年3月2日
ビジュアルC++ 16.9.214.28.29913.02021年3月16日
ビジュアルC++ 16.9.414.28.29914.02021年4月13日
ビジュアルC++ 16.9.914.28.29918.02021年7月13日
ビジュアルC++ 16.10.014.29.30037.02021年5月25日
ビジュアルC++ 16.10.214.29.30038.02021年6月15日
ビジュアルC++ 16.10.414.29.30040.02021年7月20日
ビジュアルC++ 16.11.014.29.30133.02021年8月10日
ビジュアルC++ 16.11.414.29.30135.02021年10月5日
ビジュアルC++ 16.11.914.29.30139.02022年1月11日
ビジュアルC++ 16.11.3214.29.30153.02023年11月14日
ビジュアルC++ 16.11.4114.29.30156.02024年10月8日
ビジュアルC++ 16.11.4214.29.30157.02024年11月12日
マイクロソフト Visual C++ 2022ビジュアルC++ 17.0.0RCmfc140.dll14.30.30704.02021年10月13日
ビジュアルC++ 17.0.514.31.30708.02022年1月14日
ビジュアルC++ 17.1.014.31.30818.02021年10月27日
ビジュアルC++ 17.1.014.31.30919.02021年12月23日
ビジュアルC++ 17.1.014.31.31005.02022年1月26日
ビジュアルC++ 17.1.014.31.31103.02022年1月26日
ビジュアルC++ 17.2.014.32.31302.02022年3月17日
ビジュアルC++ 17.2.014.32.31326.02022年4月9日
ビジュアルC++ 17.2.514.32.31332.02022年7月1日
ビジュアルC++ 17.4.014.34.31931.02022年11月9日
ビジュアルC++ 17.4.514.34.31938.02023年2月14日
ビジュアルC++ 17.6.014.36.32532.02023年5月16日
ビジュアルC++ 17.7.114.38.32919.02023年8月11日
ビジュアルC++ 17.8.014.38.33130.02023年11月15日
ビジュアルC++ 17.8.614.38.33135.02024年2月6日
ビジュアルC++ 17.9.414.40.33617.12024年3月19日
ビジュアルC++ 17.9.414.40.33810.02024年5月1日
ビジュアルC++ 17.9.514.40.33816.02024年10月8日

参照

注記

  1. ^ Windows XPを公式にサポートするライブラリの最後のバージョン[34]

参考文献

  1. ^ 「Visual Studio 2019 リリースノート」。Msdn.microsoft.com 。 2019年7月24日閲覧
  2. ^ Visual C++ Express の概要
  3. ^ 「Visual C++ 2008 Feature Pack が出荷されました」。Somasegarのブログ。Microsoft。2008年4月7日。
  4. ^ 「Visual C++ 2008 Feature Pack がリリースされました!」C++ チームブログ。Microsoft。2008年4月7日。
  5. ^ 「Visual C++ 2008 Feature Pack Refresh」。C ++ チームブログ。Microsoft。2008年4月22日。
  6. ^ ab 「新しいMFC機能のクイックツアー」Blogs.msdn.com、2007年11月9日。 2019年9月10日閲覧
  7. ^ 「Visual Studio Express Edition FAQ」。Microsoft.com。2011年6月11日時点のオリジナルよりアーカイブ2012年1月6日閲覧。
  8. ^ 「MicrosoftがInpriseを買収し、紛争を解決」Techweb.com。2007年10月17日時点のオリジナルよりアーカイブ。 2012年1月6日閲覧
  9. ^ ウィリアムズ、ミッキー、デビッド・ベネット。「独自のメッセージマップを作成する」。Inform IT。
  10. ^ 「BCGSoftによるMFCアップデート」Msdn2.microsoft.com、2007年11月9日。 2007年11月16日閲覧
  11. ^ 「Visual C++ 2008 Feature Pack リリース ダウンロード ページ」Microsoft.com . 2008年5月16日閲覧
  12. ^ 「Microsoft C++ コンパイラが20周年を迎えました!」C++ チームブログ、Microsoft、2012年2月3日。
  13. ^ 「MFC 25周年おめでとう!」C++ チームブログ。Microsoft。2017年2月27日。
  14. ^ abcd 「マイクロソフト セキュリティ情報 MS09-035 - 中: Visual Studio アクティブ テンプレート ライブラリの脆弱性により、リモートでコードが実行される可能性がある (969706)」。Microsoft Learn。Microsoft。2009年7月28日。
  15. ^ abcdefg 「マイクロソフト セキュリティ情報 MS11-025 - 重要: Microsoft Foundation Class (MFC) ライブラリの脆弱性により、リモートでコードが実行される可能性がある (2500212)」。Microsoft Learn。Microsoft。2011年4月12日。
  16. ^ 「MS11-025: Visual Studio .NET 2003 SP1 のセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
  17. ^ 「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
  18. ^ 「MS11-025: Visual C++ 2005 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
  19. ^ 「MS11-025: Visual C++ 2005 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年6月14日」。Microsoftサポート。Microsoft。2011年6月14日。
  20. ^ 「Visual C++再頒布可能パッケージはどこでダウンロードできますか?」Jags Blog . Microsoft. 2017年9月4日. 2019年6月10日閲覧
  21. ^ 「FIX: .msiファイルを使用してアプリケーションをインストールすると、そのファイルがVisual C++ 2005ランタイムライブラリのマージモジュールとマージされている場合に「HRESULT: 0x80073715」エラーが発生する」Microsoft.com . 2021年1月25日。
  22. ^ vcredist/source_links/README.md > ソースリンクアーカイブ
  23. ^ 「Microsoft Visual C++ 2008 再頒布可能パッケージのセキュリティ更新プログラムの説明: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
  24. ^ 「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2009年7月28日」。Microsoftサポート。Microsoft。2009年7月28日。
  25. ^ 「MS11-025: Visual C++ 2008 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
  26. ^ 「MS11-025: Visual C++ 2008 SP1 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年6月14日」。Microsoftサポート。Microsoft。2011年6月14日。
  27. ^ 「Visual C++ - Visual Studio 2010のC++およびMFCの新機能の探索」Msdn.microsoft.com 。 2012年11月19日閲覧
  28. ^ 「MS11-025: Visual C++ 2010 再頒布可能パッケージのセキュリティ更新プログラムについて: 2011年4月12日」。Microsoftサポート。Microsoft。2011年4月12日。
  29. ^ 「MS11-025: Visual C++ 2010 Service Pack 1 のセキュリティ更新プログラムについて: 2011年8月9日」。Microsoftサポート。Microsoft。2011年8月9日。
  30. ^ 「Visual C++ 2013およびVisual C++再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2017年1月8日閲覧
  31. ^ 「Visual C++ 2013およびVisual C++再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2017年1月8日閲覧
  32. ^ 「Visual C++ 2013再頒布可能パッケージの更新プログラム」。Microsoftサポート。Microsoft 。 2019年6月10日閲覧
  33. ^ 「Microsoft Visual Studio 2015 Update 3 の累積的なサービスリリース (KB3165756)」。Microsoft Learn。Microsoft2016年8月28日閲覧
  34. ^ Visual Studio バージョン間の C++ バイナリ互換性

さらに読む

  • サポートされている最新の Visual C++ ダウンロード - Microsoft
  • Visual C++ 再頒布可能パッケージはどこからダウンロードできますか? - Microsoft
  • MSDN MFCリファレンス - Microsoft
  • MFC: Visual Studio 2005以降 - Microsoft
  • 次世代 Visual C++ の内幕 (MFC 9 の主要なアップデートをカバー) - Microsoft
Retrieved from "https://en.wikipedia.org/w/index.php?title=Microsoft_Foundation_Class_Library&oldid=1317278856"