Microsoft Foundation Classes (MFC) -paketti on Microsoftin kehittämä C++-kirjasto, joka on suunniteltu helpottamaan GUI -sovellusten kehittämistä Microsoft Windowsille käyttämällä runsaasti kirjastoluokkia.
MFC-kirjasto, kuten sen pääkilpailija, Borland VCL , helpottaa työskentelyä GUI:n kanssa luomalla sovelluskehyksen - "luuranko"-ohjelman, joka luodaan automaattisesti tietyn käyttöliittymäasettelun mukaan ja ottaa kokonaan haltuunsa sen rutiinitoiminnot. ylläpito (ikkunatapahtumien käsittely, tiedon siirto sisäisten elementtipuskurien ja ohjelmamuuttujien välillä jne.). Sovelluskehyksen luomisen jälkeen ohjelmoijan tarvitsee syöttää koodi vain paikkoihin, joissa tarvitaan erityistoimenpiteitä. Viitekehyksellä on oltava hyvin määritelty rakenne, joten Visual C++ tarjoaa ohjattuja toimintoja sen luomiseen ja muokkaamiseen.
Lisäksi MFC tarjoaa oliopohjaisen käärekerroksen ( englanninkieliset kääreet ) monien Windows API -toimintojen päälle , mikä tekee niiden kanssa työskentelystä helpompaa. Tämä kerros edustaa monia järjestelmään rakennettuja objekteja (ikkunoita, widgetejä , tiedostoja jne.) luokkien muodossa ja huolehtii jälleen rutiinitoiminnoista, kuten kuvaajien sulkemisesta ja muistin varaamisesta / vapauttamisesta.
Sovelluskoodin lisääminen kehykseen toteutetaan kahdella tavalla. Ensimmäinen käyttää periytymismekanismia : kehyksen pääohjelmarakenteet esitetään kirjastoista perittyjen luokkien muodossa . Nämä luokat tarjoavat monia virtuaalisia toimintoja , joita kutsutaan tietyissä ohjelman kohdissa. Määrittelemällä uudelleen (useimmissa tapauksissa on tarpeen kutsua perusluokan funktio) nämä funktiot, ohjelmoija voi lisätä suorituksen näihin kohtiin koodissaan.
Toista tapaa käytetään lisäämään ikkunatapahtumakäsittelijöitä. Ohjattu toiminto luo erityisiä taulukoita ikkunoihin liittyvien luokkien kehyksiin - (ikkuna)viestien karttoja ( eng. message map ), jotka sisältävät "viestin ID - osoitin käsittelijälle" -pareja. Kun lisäät/poistat käsittelijän, ohjattu toiminto tekee muutoksia vastaavaan viestikarttaan.
Ensimmäinen MFC-versio julkaistiin Microsoftin 16-bittisen C/C++-kääntäjän version 7 kanssa vuonna 1992. API -toimintoja käyttäviä sovelluksia kehittäville MFC-paketti lupasi erittäin merkittävän lisäyksen ohjelmointiprosessin tuottavuuteen.
Eräs MFC:n huomionarvoinen ominaisuus on "Afx"-etuliite, jota käytetään monien funktioiden ja makrojen nimissä, sekä tavallisen otsikkotiedoston nimessä "stdafx.h". Kehityksen varhaisessa vaiheessa sitä, mikä myöhemmin tunnettiin nimellä MFC, kutsuttiin "Application Framework Extensions" ja lyhennettiin "Afx". Päätös muuttaa nimeksi Microsoft Foundation Classes (MFC) tehtiin liian myöhään, jotta koodin viittaukset Afx:iin muutettiin.
Object Windows Library (OWL), jonka Borland on kehittänyt ajamaan omaa C++- kääntäjäänsä , oli kilpaileva tuote, joka esiteltiin samana aikana. Borland lopetti lopulta OWL:n kehittämisen ja hankki lyhytaikaisen lisenssin MFC-kirjastojen käyttöön, mutta ei koskaan tarjonnut täyttä MFC-tukea tuotteilleen. Borland julkaisi myöhemmin VCL :n OWL:n tilalle.
Microsoftin keskittyminen MFC:hen on löystynyt Microsoft .NET Frameworkin hyväksi . Tästä huolimatta MFC on edelleen suosittu kehittäjien keskuudessa.
Huhtikuussa 2008 Microsoft julkaisi vuosien käyttämättömyyden jälkeen MFC:n suuren päivityksen nimeltä MFC Feature Pack. Tämä päivitys tarjottiin asennettavaksi Visual Studio 2008:n lisäosana. Periaatteessa nämä olivat MFC-lisäluokkia, joiden oikeudet hankittiin venäläiseltä BCGSoft-yritykseltä [1] . MFC sisälsi tuen uudelle Ribbon -liittymälle ja useita muita parannuksia, jotka liittyvät parannettuihin käyttöliittymän ohjauksiin. Visual Studio 2008 Service Packin julkaisun jälkeen näistä luokista on tullut olennainen osa MFC:tä.
Tuotteen versio | MFC versio | Julkaisupäivä |
---|---|---|
Microsoft C/C++ 7.0 | MFC 1.0 | 1992 |
Visual C++ 1.0 | MFC 2.0 (otettu käyttöön asiakirjanäkymän arkkitehtuuri ) | |
Visual C++ 1.5 | MFC 2.5 (toteutettu tuki ODBC- ja vedä ja pudota -tekniikoille ) | |
Visual C++ 1.52c | MFC 2.5 (viimeisin kehitysalusta MS Windows 3.x:lle) | |
Visual C++ 2.0 | MFC 3.0 (lisätty moniajo- ja Unicode- tuki ) | |
Visual C++ 2.1 | MFC 3.1 | |
Visual C++ 2.2 | MFC 3.2 | |
Visual C++ 4.0 | MFC 4.0 (mfc40.dll sisältyy Windows 95:een) | elokuuta 1995 |
Visual C++ 4.1 | MFC 4.1 | |
Visual C++ 4.2 | MFC 4.2 (mfc42.dll sisältyy Windows 98:n alkuperäiseen julkaisuun) | Maaliskuu 1998 |
eMbedded Visual C++ 3.0 | MFC 4.2 (mfc42.dll) | |
Visual C++ 5.0 | MFC 4.21 (mfc42.dll), tärkeä päivitys MFC 4.2:een. | |
Visual C++ 6.0 | MFC 6.0 (mfc42.dll) | 1998 |
eMbedded Visual C++ 4.0 | MFC 6.0 (mfcce400.dll) | |
Visual C++ .NET 2002 (Visual C++ 7.0) | MFC 7.0 (mfc70.dll), .NET 1.0 | Helmikuu 2002 |
Visual C++ .NET 2003 (Visual C++ 7.1) | MFC 7.1 (mfc71.dll), .NET 1.1 | huhtikuuta 2003 |
Visual C++ 2005 [2] (Visual C++ 8.0) | MFC 8.0 (mfc80.dll), .NET 2.0 | lokakuuta 2005 |
Visual C++ 2008 [2] (Visual C++ 9.0) | MFC 9.0.21022 (mfc90.dll), .NET 3.5 | marraskuuta 2007 |
Visual C++ 2008 [2] Feature Packillä | MFC 9.0.30411 (mfc90.dll) | huhtikuuta 2008 |
Visual C++ 2008 [2] SP1 | MFC 9.0.30729 (mfc90.dll) | elokuu 2008 |
Visual C++ 2008 [2] Tietoturvapäivitys (KB971092) | MFC 9.0.30729.4148 (mfc90.dll) | Heinäkuu 2009 |
Visual C++ 2010 | MFC 10.0.30319.1 (mfc100.dll), .NET 4.0 | huhtikuuta 2010 |
Visual C++ 2010 SP1 | MFC 10.0.40219.1 (mfc100.dll), .NET 4.0 | Maaliskuu 2011 |
Visual C++ 2010 + MS11-025 | MFC 10.0.30319.415 (mfc100.dll), .NET 4.0 | huhtikuuta 2011 |
Visual C++ 2012 (Visual C++ 11.0) | MFC 11.0.50727.1 (mfc110.dll), .NET 4.5 | 26. heinäkuuta 2012 |
Visual C++ 2012 -päivitys 1 (Visual C++ 11.0) | MFC 11.0.51106.1 (mfc110.dll), .NET 4.5 | 5. marraskuuta 2012 |
Visual C++ 2012 -päivitys 3 (Visual C++ 11.0) | MFC 11.0.60610.1 (mfc110.dll), .NET 4.5 | 26. heinäkuuta 2012 |
Visual C++ 2013 (Visual C++ 12.0) | MFC 12.0.21005.1 (mfc120.dll), .NET 4.5.1 | 5. lokakuuta 2013 |
Visual C++ 2013 -päivitys 2 (Visual C++ 12.0) | MFC 12.0.30501.0 (mfc120.dll), .NET 4.5.1 | 30. joulukuuta 2014 |
Visual C++ 2015 (Visual C++ 14.0) | MFC 14.0.23026.0 (mfc140.dll), .NET 4.6 | 20. heinäkuuta 2015 |
Visual C++ 2015 -päivitys 1 (Visual C++ 14.0) | MFC 14.0.23506.0 (mfc140.dll), .NET 4.6.1 | 30. marraskuuta 2015 |
Visual C++ 2015 -päivitys 2 (Visual C++ 14.0) | MFC 14.0.23918.0 (mfc140.dll) | 30. maaliskuuta 2016 |
Visual C++ 2015 -päivitys 3 (Visual C++ 14.0) | MFC 14.0.24210.0 (mfc140.dll) | 27. kesäkuuta 2016 |
Visual C++ 2015 -päivitys 3 + KB3165756 | MFC 14.0.24212.0 (mfc140.dll) | 2. elokuuta 2016 |
Visual C++ 2017 (Visual C++ 15.0) | MFC 14.10.25008.0 (mfc140.dll), .NET 4.6.2 | 7. maaliskuuta 2017 |
GUI-elementtien työkalupakkit (sarjat) . | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matalatasoinen _ |
| ||||||||||||||||||||||||||
korkea taso |
|