Microsoft Foundation Sınıf Kitaplığı - Microsoft Foundation Class Library
| Geliştirici(ler) | Microsoft |
|---|---|
| İlk sürüm | 1992 |
| kararlı sürüm | 14.22.27821.0 / 24 Temmuz 2019 |
| Yazılmış | C++ |
| İşletim sistemi | Microsoft Windows |
| Lisans | tescilli |
| İnternet sitesi | docs |
Microsoft Foundation Class Library (MFC), Windows için masaüstü uygulamaları geliştirmeye yönelik C++ nesne yönelimli bir kitaplıktır .
MFC, 1992 yılında Microsoft tarafından tanıtıldı ve hızla yaygın bir şekilde kullanıldı. Microsoft, o zamandan beri alternatif uygulama çerçeveleri sunsa da, MFC yaygın olarak kullanılmaya devam ediyor.
Tarih
MFC, Windows API için son derece ince bir nesne yönelimli C++ sarmalayıcısı olarak Windows'un 16 bit sürümleriyle kullanım için Microsoft'un C/C++ 7.0 derleyicisiyle 1992'de tanıtıldı . C++, o sırada ticari uygulama yazılımının geliştirilmesi için C'nin yerini almaya başlamıştı . Bir MFC programında, doğrudan Windows API çağrılarına nadiren ihtiyaç duyulur. Bunun yerine, programlar Microsoft Foundation Class sınıflarından nesneler oluşturur ve bu nesnelere ait üye işlevleri çağırır. Bu işlevlerin çoğu, adlarını karşılık gelen API işlevleriyle paylaşır.
MFC'nin bir tuhaflığı, birçok işlev, makro ve standart önceden derlenmiş başlık adı " stdafx.h" için önek olarak "Afx" kullanılmasıdır . Erken geliştirme sırasında, MFC haline gelen "Uygulama Çerçevesi Uzantıları" olarak adlandırıldı ve "Afx" olarak kısaltıldı. Microsoft Foundation Classes (MFC) adı, bu başvuruları değiştirmek için yayın döngüsünde çok geç kabul edildi.
MFC 8.0, Visual Studio 2005 ile birlikte yayımlanmıştır . MFC 9.0, Visual Studio 2008 ile birlikte yayımlandı. 7 Nisan 2008'de Microsoft , Visual Studio 2008 ve MFC 9 için bant dışı bir güncelleştirme olarak MFC sınıflarına yönelik bir güncelleştirme yayımladı . Güncelleştirme, şeritler dahil olmak üzere yeni kullanıcı arabirimi yapılarını içerir. ve ilişkili UI widget'ları , tamamen özelleştirilebilir araç çubukları , serbestçe yüzebilen veya herhangi bir tarafa sabitlenebilen yerleştirme bölmeleri ve belge sekmeleri .
MFC başlangıçta Visual Studio'nun ticari sürümlerinin bir özelliğiydi. Bu nedenle, ücretsiz Visual C++ Express'e dahil değildir . Visual Studio Topluluk baskısı 2014 yılında tanıtılan, ancak, MFC içerir.
Nesne, Windows Kitaplığı (OWL), Borland ile kullanılmak üzere tasarlanmış Turbo C ++ derleyici tarafından tanıtılan bir rakip ürünü Borland aynı zamanda etrafında. Sonunda, Borland OWL geliştirmeyi durdurdu ve MFC için tam entegre destek sunmamasına rağmen, kısa bir süre için MFC başlıklarının, kitaplıklarının ve DLL'lerinin Microsoft'tan dağıtımını lisansladı. Borland daha sonra OWL çerçevesini değiştirmek için Visual Component Library'yi yayınladı .
Özellikleri
MFC, varsayılan bir uygulama çerçevesi kullanmalarını sağlayan işlevsellik de dahil olmak üzere , Windows API'sinin bölümlerini C++ sınıflarına saran bir kitaplıktır . Sınıflar birçoğu için tanımlanan sap , Windows önceden pencere ve ortak kontroller için de nesneleri ve yönettiği.
MFC, piyasaya sürüldüğü sırada, Windows ileti işleme (Message Maps aracılığıyla), istisnalar , çalışma zamanı türü tanımlama (RTTI), serileştirme ve dinamik sınıf somutlaştırma için C++ makroları sağladı . İleti işleme makroları, gereksiz sanal tablo kullanımından kaçınarak bellek tüketimini azaltmayı ve ayrıca tam dili ayrıştırmadan kodu düzenlemek ve işlemek için Visual C++ tarafından sağlanan çeşitli araçlar için daha somut bir yapı sağlamayı amaçladı . Mesaj işleme makroları , C++ tarafından sağlanan sanal işlev mekanizmasının yerini aldı .
Serileştirme, özel durumlar ve RTTI makroları, bu özelliklerin Microsoft C++'da birkaç yıl önceden kullanılabilirliğini gösteriyordu. Windows NT 3.1 ve sonraki Windows işletim sistemleri için MFC'nin 32-bit sürümleri , dil özelliklerini uygulayan derleyiciler kullandı ve makroları, özelleştirilmiş uygulamalar sağlamak yerine dil özelliklerini sarmak için güncelleyerek yukarı uyumluluğu gerçekleştirdi.
MFC şerit kaynak düzenleyicisi, geliştiricinin RibbonX API gibi XML tabanlı bildirimsel işaretlemeyi kullanmak yerine şeridi grafiksel olarak tasarlamasına olanak tanır . İsteğe bağlı olarak, şerit bileşenleri, yeni bir şerit sınıfı yöntemleri kümesi çağrılarak doğrudan programlanabilir. Geliştirici, uygun olduğu şekilde grafik ve programatik şerit geliştirmeyi karıştırabilir. MFC uygulama sihirbazı, uygulamanın şeridi mi yoksa yerleştirme bölmelerini mi kullanacağını seçmek için bir onay kutusu da dahil olmak üzere yeni özellikleri destekleyecek şekilde yükseltildi. Yeni işlevsellik, eski uygulamaların çalışmaya devam etmesi için yeni sınıflarda sağlanır. Bu güncelleştirme üstünde inşa ediyor BCGSoft ‘ın BCGControlBar Kütüphane Professional Edition. Microsoft, şerit kullanıcılarına ek lisans gereksinimleri getirmiştir. Bunlar, Microsoft UI Tasarım Yönergelerine uyma zorunluluğunu ve Microsoft Office ile rekabet eden uygulamalarda UI kullanımını yasaklayan bir rekabet karşıtı maddeyi içerir .
MFC, statik bir kitaplık bağlanarak veya MFC DLL'si eklenerek kullanılabilir .
Sürümler
| Ürün | Kütüphane | Sürüm | Yayın tarihi | |
|---|---|---|---|---|
| İsim | Sürüm | |||
| Microsoft C/C++ 7.0 | mafxcw.lib | MFC 1.0 | 1992 | |
| Microsoft Visual C++ 1.0 | Görsel C++ 1.0 | mfc200.dll | MFC 2.0 | |
| Görsel C++ 1.5 | mfc250.dll | MFC 2.5 | ||
| Görsel C++ 1.51 | mfc250.dll | MFC 2.51 | ||
| Görsel C++ 1.52c | mfc250.dll | MFC 2.5 ( Windows 3.x için son geliştirme platformu ) | ||
| Microsoft Visual C++ 2.0 | Görsel C++ 2.0 | mfc30.dll | MFC 3.0 | |
| Görsel C++ 2.1 | mfc30.dll | MFC 3.1 | ||
| Görsel C++ 2.2 | mfc30.dll | MFC 3.2 | ||
| Microsoft Visual C++ 4.0 | Görsel C++ 4.0 | mfc40.dll | MFC 4.0 (mfc40.dll, Windows 95'te bulunur ) | Ağustos 1995 |
| Görsel C++ 4.1 | mfc40.dll | MFC 4.1 | ||
| Görsel C++ 4.2 | mfc42.dll | MFC 4.2 (mfc42.dll, Windows 98 orijinal sürümüne dahildir) | Mart 1998 | |
| eGömülü Visual C++ 3.0 | mfc42.dll | MFC 4.2 | ||
| Microsoft Visual C++ 5.0 | Görsel C++ 5.0 | mfc42.dll | MFC 4.21, MFC 4.2'den büyük bir yükseltme. | |
| Microsoft Visual C++ 6.0 | Görsel C++ 6.0 | mfc42.dll | MFC 6.0 | 1998 |
| eGömülü 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 | 13 Şubat 2002 |
| Microsoft Visual C++ .NET 2003 | Visual C++ .NET 2003 (Visual C++ 7.1) | mfc71.dll | MFC 7.1 | 24 Nisan 2003 |
| Visual C++ .NET 2003 + MS11-025 (KB2465373) | MFC 7.10.6119.0 | 12 Nisan 2011 | ||
| Microsoft Visual C++ 2005 | Visual C++ 2005 (Visual C++ 8.0) | mfc80.dll | 8.0.50727.42 | 10 Nisan 2006 |
| Görsel C++ 2005 SP1 | 8.0.50727.762 | 27 Ağustos 2007 | ||
| Visual C++ 2005 SP1 + MS09-035 (KB973544) | 8.0.50727.4053 | 28 Temmuz 2009 | ||
| Visual C++ 2005 SP1 + MS11-025 (KB2467175) | 8.0.50727.5592 | 12 Nisan 2011 | ||
| Visual C++ 2005 SP1 + MS11-025 (KB2538242) | 8.0.50727.6195 (8.0.61000/8.0.61001 redist dahil) | 14 Haziran 2011 | ||
| Microsoft Visual C++ 2008 | Visual C++ 2008 (Visual C++ 9.0) | mfc90.dll | 9.0.21022.8 | 19 Kasım 2007 |
| Visual C++ 2008 + MS09-035 (KB973551) | 9.0.21022.218 | 28 Temmuz 2009 | ||
| Özellik Paketi ile Visual C++ 2008 | 9.0.30411 | 22 Nisan 2008 | ||
| Görsel C++ 2008 SP1 | 9.0.30729.1 | 11 Ağustos 2008 | ||
| Visual C++ 2008 SP1 + MS09-035 (KB973552) | 9.0.30729.4148 | 28 Temmuz 2009 | ||
| Visual C++ 2008 SP1 + MS11-025 (KB2467174) | 9.0.30729.5570 | 12 Nisan 2011 | ||
| Visual C++ 2008 SP1 + MS11-025 (KB2538243) | 9.0.30729.6161 (yükleyici 9.0.30729.5677 sürümüne sahiptir) | 14 Haziran 2011 | ||
| Microsoft Visual C++ 2010 | Visual C++ 2010 (Visual C++ 10.0) | mfc100.dll | 10.0.30319.1 | 12 Nisan 2010 |
| Visual C++ 2010 + MS11-025 (KB2467173) | 10.0.30319.415 | 12 Nisan 2011 | ||
| Görsel C++ 2010 SP1 | 10.0.40219.1 | 10 Mart 2011 | ||
| Visual C++ 2010 SP1 + MS11-025 (KB2565063) | 10.0.40219.325 | 9 Ağustos 2011 | ||
| Microsoft Visual C++ 2012 | Visual C++ 2012 (Visual C++ 11.0) | mfc110.dll | 11.0.50727.1 | 12 Eylül 2012 |
| Visual C++ 2012 Güncelleme 1 | 11.0.51106.1 | 26 Kasım 2012 | ||
| Visual C++ 2012 Güncelleme 3 | 11.0.660610.1 | 26 Haziran 2013 | ||
| Visual C++ 2012 Güncelleme 4 | 11.0.61030.0 | 13 Kasım 2013 | ||
| Microsoft Visual C++ 2013 | Visual C++ 2013 (Visual C++ 12.0) | mfc120.dll | 12.0.21005.1 | 17 Ekim 2013 |
| Visual C++ 2013 Güncelleştirmesi 2 | 12.0.3501.0 | 12 Mayıs 2014 | ||
| Visual C++ 2013 Güncelleştirmesi 5 + KB3138367 | 12.0.40649.5 | Şubat 2016? | ||
| Visual C++ 2013 Güncelleştirmesi 5 + KB3179560 | 12.0.40660.0 | 8 Temmuz 2016 | ||
| Visual C++ 2013 Güncelleştirmesi 5 + KB4032938 | 12.0.40664.0 | 18 Temmuz 2017 | ||
| Microsoft Visual C++ 2015 | Visual C++ 2015 (Visual C++ 14.0) | mfc140.dll | 14.0.23026.0 | 20 Temmuz 2015 |
| Visual C++ 2015 Güncellemesi 1 | 14.0.23506.0 | 30 Kasım 2015 | ||
| Visual C++ 2015 Güncellemesi 2 | 14.0.23918.0 | 30 Mart 2016 | ||
| Visual C++ 2015 Güncellemesi 3 | 14.0.24210.0 | 27 Haziran 2016 | ||
| Visual C++ 2015 Güncellemesi 3 | 14.0.24212,0 | 18 Ağustos 2016 | ||
| Visual C++ 2015 Güncellemesi 3 + KB3165756 | 14.0.24215.1 | 15 Eylül 2016 | ||
| Microsoft Visual C++ 2017 | Görsel C++ 15.0 | mfc140.dll | 14.10.25008.0 | 7 Mart 2017 |
| Görsel C++ 15.1? | 14.10.25017.0 | 5 Nisan 2017? | ||
| Görsel C++ 15.2 | 14.11.25325.0 | 10 Mayıs 2017 | ||
| Görsel C++ 15.4 | 14.12.25810.0 | 9 Ekim 2017 | ||
| Görsel C++ 15.6 | 14.13.26020.0 | 5 Mart 2018 | ||
| Görsel C++ 15.7 | 14.14.26405.0 | 7 Mayıs 2018 | ||
| Görsel C++ 15.7.3? | 14.14.26429.4 | 31 Mayıs 2018 | ||
| Görsel C++ 15.8 | 14.15.26706.0 | 14 Ağustos 2018 | ||
| Görsel C++ 15.9 | 14.16.27012.6 | 13 Kasım 2018 | ||
| Görsel C++ 15.9.5 | 14.16.27024.1 | 8 Ocak 2019 | ||
| Görsel C++ 15.9.6 | 14.16.27026.1 | 24 Ocak 2019 | ||
| Görsel C++ 15.9.9 | 14.16.27027.1 | 12 Mart 2019 | ||
| Görsel C++ 15.9.15 | 14.16.27033.0 | 13 Ağustos 2019 | ||
| Microsoft Visual C++ 2019 | Görsel C++ 16.0.0 | mfc140.dll | 14.20.27508.1 | 2 Nisan 2019? |
| Görsel C++ 16.1.0 | 14.21.27702.2 | 21 Mayıs 2019 | ||
| Görsel C++ 16.2.0 | 14.22.27821.0 | 24 Temmuz 2019 | ||
| Görsel C++ 16.3.0 | 14.23.27820.0 | 23 Eylül 2019 | ||
| Görsel C++ 16.4.0 | 14.24.28127.4 | 3 Aralık 2019 | ||
| Görsel C++ 16.5.0 | 14.25.28508.3 | 16 Mart 2020 | ||
| Görsel C++ 16.6.0 | 14.26.28720.3 | 19 Mayıs 2020 | ||
| Görsel C++ 16.6.3 | 14.26.28808.1 | 30 Haziran 2020 | ||
| Görsel C++ 16.7.0 | 14.27.29016.0 | 5 Ağustos 2020 | ||
| Görsel C++ 16.7.5 | 14.27.29112.0 | 29 Eylül 2020 | ||
| Görsel C++ 16.8.0 | 14.28.29325.2 | 10 Kasım 2020 | ||
| Görsel C++ 16.8.2 | 14.28.29334.0 | 19 Kasım 2020 | ||
| Görsel C++ 16.9.0 | 14.28.29910.0 | 2 Mart 2021 | ||
| Visual C++ 16.9.2 | 14.28.29913.0 | 16 Mart 2021 | ||
| Visual C++ 16.9.4 | 14.28.29914.0 | 13 Nisan 2021 | ||
| Görsel C++ 16.10.0 | 14.29.30037.0 | 25 Mayıs 2021 | ||
| Görsel C++ 16.10.2 | 14.29.30038,0 | 15 Haziran 2021 | ||
| Görsel C++ 16.10.4 | 14.29.30040.0 | 20 Temmuz 2021 | ||
| Görsel C++ 16.11.0 | 14.29.30133.0 | 10 Ağustos 2021 | ||
| Görsel C++ 16.11.4 | 14.29.30135.0 | 5 Ekim 2021 | ||
| Microsoft Visual C++ 2022 | Görsel C++ 17.0.0RC | mfc140.dll | 14.30.30704.0 | 13 Ekim 2021 |
Ayrıca bakınız
- Etkin Şablon Kitaplığı (ATL)
- SU
- Qt
- Standart Şablon Kitaplığı (STL)
- Windows Şablon Kitaplığı (WTL)
- WxWidget'lar
Referanslar
daha fazla okuma
- Düzyazı, Jeff (1999). Windows'u MFC ile Programlama (2 ed.). Microsoft Basın . ISBN'si 9781572316959.
- Çoban, George (1996). MFC Dahili (7 ed.). Addison-Wesley . ISBN'si 9780201407211.
- Kruglinski, David (1997). Visual C++ içinde (4 ed.). Microsoft Basın . ISBN'si 9781572315655.
- Microsoft'un (1995). Microsoft Visual C++: MFC ile Programlama (2 ed.). Microsoft Basın . ISBN'si 9781556159213.
Dış bağlantılar
- Desteklenen en son Visual C++ indirmeleri - Microsoft
- Visual C++ Yeniden Dağıtılabilir Dosyalarını nereden indirebilirim? - Microsoft
- MSDN MFC Başvurusu - Microsoft
- MFC: Visual Studio 2005 ve Ötesi - Microsoft
- Yeni Nesil Visual C++'a İçeriden Bakış (büyük MFC 9 güncellemelerini kapsar) - Microsoft