MicrosoftFoundationクラスライブラリ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

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

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

MFCは1992年にMicrosoftによって導入され、すぐに広く使用されるようになりました。それ以来、Microsoftは代替のアプリケーションフレームワークを導入していますが、MFCは引き続き広く使用されています。

歴史

MFCは、WindowsAPIの非常に薄いオブジェクト指向C++ラッパーとして16ビットバージョンのWindowsで使用するために、1992年にMicrosoftのC / C++7.0 コンパイラで導入されました。当時、C ++は、商用アプリケーションソフトウェアの開発のためにCに取って代わり始めたばかりでした。MFCプログラムでは、WindowsAPIを直接呼び出す必要はほとんどありません。代わりに、プログラムはMicrosoft Foundation Classクラスからオブジェクトを作成し、それらのオブジェクトに属するメンバー関数を呼び出します。これらの関数の多くは、対応するAPI関数と名前を共有しています。[2]

MFCの癖の1つは、多くの関数、マクロ、および標準のプリコンパイル済みヘッダー名「stdafx.h」のプレフィックスとして「Afx」を使用することです。開発の初期段階で、MFCになったのは「ApplicationFramework Extensions」と呼ばれ、「Afx」と略されました。Microsoft Foundation Classes(MFC)という名前は、リリースサイクルの後半で採用されたため、これらの参照を変更できませんでした。

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

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

BorlandのTurboC++コンパイラで使用するために設計されたObjectWindowsLibrary(OWL)は、同じ時期にBorlandによって導入された競合製品でした。最終的に、BorlandはOWLの開発を中止し、MFCの完全に統合されたサポートを提供することはありませんでしたが、 Microsoft [6]からMFCヘッダー、ライブラリ、およびDLLの配布のライセンスを取得しました。Borlandは後に、OWLフレームワークを置き換えるためにVisualComponentLibraryを リリースしました。

機能

MFCは、 WindowsAPIの一部をC++クラスでラップするライブラリであり、デフォルトのアプリケーションフレームワークを使用できるようにする機能が含まれていますクラスは、ハンドル管理されたWindowsオブジェクトの多く、および事前定義されたウィンドウと共通コントロールに対して定義されています。

MFCは、導入時に、Windowsメッセージ処理(メッセージマップ[7]を介して)、例外実行時型情報(RTTI)、シリアル化、および動的クラスインスタンス化用のC++マクロを提供していました。メッセージ処理用のマクロは、不必要な仮想テーブルの使用を回避することでメモリ消費を削減し、完全な言語を解析せずにコードを編集および操作するためのさまざまなVisualC++提供ツールのより具体的な構造を提供することを目的としています。メッセージ処理マクロは、C++によって提供される 仮想関数メカニズムに取って代わりました。

シリアル化、例外、およびRTTIのマクロは、MicrosoftC++でのこれらの機能の可用性よりも数年前から存在していました。Windows NT 3.1以降のWindowsオペレーティングシステム用の32ビットバージョンのMFCは、言語機能を実装するコンパイラを使用し、カスタマイズされた実装を提供する代わりに言語機能を単純にラップするようにマクロを更新して、上位互換性を実現しました。

MFCリボンリソースエディターを使用すると、開発者は、RibbonX APIのようなXMLベースの宣言型マークアップを使用する代わりに、リボンをグラフィカルに設計できます。オプションで、リボンコンポーネントは、リボンクラスメソッドの新しいセットを呼び出すことによって直接プログラムできます。開発者は、便利なようにグラフィカルリボン開発とプログラムリボン開発を組み合わせることができます。MFCアプリケーションウィザードもアップグレードされ、アプリケーションがリボンまたはドッキングペインのどちらを使用するかを選択するためのチェックボックスなどの新機能がサポートされるようになりました。新しい機能は新しいクラスで提供されるため、古いアプリケーションは引き続き実行されます。[4]このアップデートは、 BCGSoftBCGControlBarの上に構築されていますLibraryProfessionalEdition。[8] Microsoftは、リボンのユーザーに追加のライセンス要件を課しています。[9]これらには、Microsoft UI設計ガイドラインに準拠するための要件、およびMicrosoftOfficeと競合するアプリケーションでのUIの使用を禁止する競業避止条項が含まれます

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

バージョン

製品 としょうかん バージョン 発売日
名前 バージョン
Microsoft C / C ++ 7.0 mafxcw.lib MFC 1.0 1992
Microsoft Visual C ++ 1.0 Visual C ++ 1.0 mfc200.dll MFC 2.0
Visual C ++ 1.5 mfc250.dll MFC 2.5
Visual C ++ 1.51 mfc250.dll MFC 2.51
Visual C ++ 1.52c mfc250.dll MFC 2.5(Windows 3.x用の最後の開発プラットフォーム)
Microsoft Visual C ++ 2.0 Visual C ++ 2.0 mfc30.dll MFC 3.0
Visual C ++ 2.1 mfc30.dll MFC 3.1
Visual C ++ 2.2 mfc30.dll MFC 3.2
Microsoft Visual C ++ 4.0 Visual C ++ 4.0 mfc40.dll MFC 4.0( Windows95に含まれているmfc40.dll 1995年8月
Visual C ++ 4.1 mfc40.dll MFC 4.1
Visual C ++ 4.2 mfc42.dll MFC 4.2( Windows 98の元のリリース に含まれているmfc42.dll ) 1998年3月
eMbedded Visual C ++ 3.0 mfc42.dll MFC 4.2
Microsoft Visual C ++ 5.0 Visual C ++ 5.0 mfc42.dll MFC 4.21、MFC4.2からのメジャーアップグレード。
Microsoft Visual C ++ 6.0 Visual C ++ 6.0 mfc42.dll MFC 6.0 1998年
eMbedded Visual C ++ 4.0 mfcce400.dll MFC 6.0
Microsoft Visual C ++ .NET 2002 Visual C ++ .NET 2002(Visual C ++ 7.0) mfc70.dll MFC 7.0 2002年2月13日
Microsoft Visual C ++ .NET 2003 Visual C ++ .NET 2003(Visual C ++ 7.1) mfc71.dll MFC 7.1 2003年4月24日
Visual C ++ .NET 2003 + MS11-025(KB2465373)[10] MFC 7.10.6119.0 2011年4月12日
Microsoft Visual C ++ 2005 Visual C ++ 2005(Visual C ++ 8.0) mfc80.dll 8.0.50727.42 2006年4月10日
Visual C ++ 2005 SP1 8.0.50727.762 2007年8月27日
Visual C ++ 2005 SP1 + MS09-035(KB973544)[11] [12] 8.0.50727.4053 2009年7月28日
Visual C ++ 2005 SP1 + MS11-025(KB2467175)[10] 8.0.50727.5592 2011年4月12日
Visual C ++ 2005 SP1 + MS11-025(KB2538242)[10] [13] 8.0.50727.6195(redist 8.0.61000 / 8.0.61001 [14]に含まれています) 2011年6月14日
Microsoft Visual C ++ 2008 Visual C ++ 2008(Visual C ++ 9.0) mfc90.dll 9.0.21022.8 2007年11月19日
Visual C ++ 2008 + MS09-035(KB973551)[11] [12] 9.0.21022.218 2009年7月28日
Visual C ++ 2008 with Feature Pack 9.0.30411 2008年4月22日
Visual C ++ 2008 SP1 9.0.30729.1 2008年8月11日
Visual C ++ 2008 SP1 + MS09-035(KB973552)[11] [12] 9.0.30729.4148 2009年7月28日
Visual C ++ 2008 SP1 + MS11-025(KB2467174)[10] 9.0.30729.5570 2011年4月12日
Visual C ++ 2008 SP1 + MS11-025(KB2538243)[10] 9.0.30729.6161(インストーラーのバージョンは9.0.30729.5677) 2011年6月14日
Microsoft Visual C ++ 2010 Visual C ++ 2010(Visual C ++ 10.0) mfc100.dll 10.0.30319.1 2010年4月12日[15]
Visual C ++ 2010 + MS11-025(KB2467173)[10] 10.0.30319.415 2011年4月12日
Visual C ++ 2010 SP1 10.0.40219.1 2011年3月10日
Visual C ++ 2010 SP1 + MS11-025(KB2565063)[10] 10.0.40219.325 2011年8月9日
Microsoft Visual C ++ 2012 Visual C ++ 2012(Visual C ++ 11.0) mfc110.dll 11.0.50727.1 2012年9月12日
Visual C ++ 2012 Update 1 11.0.51106.1 2012年11月26日
Visual C ++ 2012 Update 3 11.0.60610.1 2013年6月26日
Visual C ++ 2012 Update 4 11.0.61030.0 2013年11月13日
Microsoft Visual C ++ 2013 Visual C ++ 2013(Visual C ++ 12.0) mfc120.dll 12.0.21005.1 2013年10月17日
Visual C ++ 2013 Update 2 12.0.30501.0 2014年5月12日
Visual C ++ 2013 Update 5 + KB3138367 12.0.40649.5 2016年2月?
Visual C ++ 2013 Update 5 + KB3179560 12.0.40660.0 2016年7月8日[16]
Visual C ++ 2013 Update 5 + KB4032938 12.0.40664.0 2017年7月18日[17]
Microsoft Visual C ++ 2015 Visual C ++ 2015(Visual C ++ 14.0) mfc140.dll 14.0.23026.0 2015年7月20日
Visual C ++ 2015 Update 1 14.0.23506.0 2015年11月30日[18]
Visual C ++ 2015 Update 2 14.0.23918.0 2016年3月30日[19]
Visual C ++ 2015 Update 3 14.0.24210.0 2016年6月27日[20]
Visual C ++ 2015 Update 3 14.0.24212.0 2016年8月18日
Visual C ++ 2015 Update 3 + KB3165756 14.0.24215.1 2016年9月15日[21]
Visual C ++ 2015 Update 3 14.0.24516.0 2021年10月23日
Microsoft Visual C ++ 2017 Visual C ++ 15.0 mfc140.dll 14.10.25008.0 2017年3月7日
Visual C ++ 15.1? 14.10.25017.0 2017年4月5日?
Visual C ++ 15.2 14.11.25325.0 2017年5月10日
Visual C ++ 15.4 14.12.25810.0 2017年10月9日
Visual C ++ 15.6 14.13.26020.0 2018年3月5日
Visual C ++ 15.7 14.14.26405.0 2018年5月7日
Visual C ++ 15.7.3? 14.14.26429.4 2018年5月31日
Visual C ++ 15.8 14.15.26706.0 2018年8月14日
Visual C ++ 15.9 14.16.27012.6 2018年11月13日
Visual C ++ 15.9.5 14.16.27024.1 2019年1月8日
Visual C ++ 15.9.6 14.16.27026.1 2019年1月24日
Visual C ++ 15.9.9 14.16.27027.1 2019年3月12日
Visual C ++ 15.9.15 14.16.27033.0 2019年8月13日
Microsoft Visual C ++ 2019 Visual C ++ 16.0.0 mfc140.dll 14.20.27508.1 2019年4月2日?
Visual C ++ 16.1.0 14.21.27702.2 2019年5月21日
Visual C ++ 16.2.0 14.22.27821.0 2019年7月24日
Visual C ++ 16.3.0 14.23.27820.0 2019年9月23日
Visual C ++ 16.4.0 14.24.28127.4 2019年12月3日
Visual C ++ 16.5.0 14.25.28508.3 2020年3月16日
Visual C ++ 16.6.0 14.26.28720.3 2020年5月19日
Visual C ++ 16.6.3 14.26.28808.1 2020年6月30日
Visual C ++ 16.7.0 14.27.29016.0 2020年8月5日
Visual C ++ 16.7.5 14.27.29112.0 2020年9月29日
Visual C ++ 16.8.0 14.28.29325.2 2020年11月10日
Visual C ++ 16.8.2 14.28.29334.0 2020年11月19日
Visual C ++ 16.9.0 14.28.29910.0 2021年3月2日
Visual C ++ 16.9.2 14.28.29913.0 2021年3月16日
Visual C ++ 16.9.4 14.28.29914.0 2021年4月13日
Visual C ++ 16.10.0 14.29.30037.0 2021年5月25日
Visual C ++ 16.10.2 14.29.30038.0 2021年6月15日
Visual C ++ 16.10.4 14.29.30040.0 2021年7月20日
Visual C ++ 16.11.0 14.29.30133.0 2021年8月10日
Visual C ++ 16.11.4 14.29.30135.0 2021年10月5日
Visual C ++ 16.11.9 14.29.30319.0 2022年1月11日
Microsoft Visual C ++ 2022 Visual C ++ 17.0.0RC mfc140.dll 14.30.30704.0 2021年10月13日
Visual C ++ 17.0.5 14.31.30708.0 2022年1月14日
Visual C ++ 17.1.0 14.31.30818.0 2021年10月27日
Visual C ++ 17.1.0 14.31.30919.0 2021年12月23日
Visual C ++ 17.1.0 14.31.31005.0 2022年1月26日
Visual C ++ 17.1.0 14.31.31103.0 2022年1月26日
Visual C ++ 17.2.0 14.32.31302.0 2022年3月17日
Visual C ++ 17.2.0 14.32.31326.0 2022年4月9日

も参照してください

参照

  1. ^ 「VisualStudio2019リリースノート」Msdn.microsoft.com 2019年7月24日取得
  2. ^ Visual C++Expressの概要
  3. ^ 「VisualC++2008機能パックが出荷されました」Blogs.msdn.com 2008年4月26日取得
  4. ^ ab 「新しいMFC機能 クイックツアー」Blogs.msdn.com 2019年9月10日取得
  5. ^ 「VisualStudioExpressEditionFAQ」Microsoft.com。2011年6月11日にオリジナルからアーカイブされました2012年1月6日取得
  6. ^ 「MicrosoftはInpriseに買収し、紛争を解決する」Techweb.com。2007年10月17日にオリジナルからアーカイブされました2012年1月6日取得
  7. ^ ウィリアムズ、ミッキー; デビッドベネット。「独自のメッセージマップの作成」ITに通知します。
  8. ^ 「BCGSoftによって供給されるMFC更新」Msdn2.microsoft.com 2007年11月16日取得
  9. ^ 「VisualC++2008機能パックリリースダウンロードページ」Microsoft.com 2008年5月16日取得
  10. ^ a b c d e f g "MS11-025:Microsoft Foundation Class(MFC)ライブラリの脆弱性により、リモートでコードが実行される可能性があります:2011年4月12日"Microsoft.com 2019年6月10日取得
  11. ^ a b c "Microsoft Security Bulletin MS09-035-中程度:Visual Studio Active Template Libraryの脆弱性により、リモートでコードが実行される可能性があります(969706)"Microsoft.com 2012年11月19日取得
  12. ^ a b c 「アクティブテンプレートライブラリ(ATL)のセキュリティの脆弱性からコンピュータを保護する」2010年10月26日にオリジナルからアーカイブされました2010年10月29日取得
  13. ^ 「MicrosoftVisualStudio2005 Service Pack1MFCセキュリティアップデート」Microsoft.com 2012年11月19日取得
  14. ^ 「VisualC++再頒布可能パッケージはどこでダウンロードできますか?」2019年6月10日取得
  15. ^ 「VisualC++-VisualStudio2010の新しいC++およびMFC機能の調査」Msdn.microsoft.com 2012年11月19日取得
  16. ^ 「VisualC++2013およびVisualC++再頒布可能パッケージの更新」Msdn.microsoft.com 2017年1月8日取得
  17. ^ 「VisualC++2013再頒布可能パッケージの更新」2019年6月10日取得
  18. ^ 「VisualStudio2015Update1」Msdn.microsoft.com 2016年6月12日取得
  19. ^ 「VisualStudio2015Update2」Msdn.microsoft.com 2016年6月12日取得
  20. ^ 「VisualStudio2015Update3」Msdn.microsoft.com 2016年6月28日取得
  21. ^ 「MicrosoftVisualStudio2015 Update 3(KB3165756)」Msdn.microsoft.com 2016年8月28日取得

さらに読む

外部リンク