Microsoft Foundation Classes: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m WPCleaner v1.30b - Fixed using Wikipedia:Check Wikipedia - Categoria con uno spazio |
m Bot: sintassi dei link |
||
Riga 1:
{{F|sistema operativo|aprile 2011|in particolare, sarebbe interessante trovare fonti che documentino l'effettivo "successo" di OWL prima e di MFC poi}}
'''Microsoft Foundation Classes''', meglio conosciuta con l'acronimo '''MFC''', è una libreria di [[classe (informatica)|classi]] [[C++]] prodotta da [[Microsoft]] con lo scopo di incapsulare le [[Windows API]]. È definita una classe per ciascun oggetto di Windows dotato di [[handle (programmazione)|handle]], e anche per le finestre predefinite e per i controlli comuni (''common controls'').
MFC è stata introdotta nel [[1992]] per essere usata con le versioni a [[16 bit]] di [[Microsoft Windows|Windows]], come parte del tentativo di [[Microsoft]] di guadagnare quote di mercato nell'area degli strumenti di sviluppo, ed è stata progettata per essere una sorta di rassegna delle potenzialità del linguaggio di programmazione C++. In quel tempo infatti il C++ aveva appena iniziato a sostituire il [[linguaggio C]] nello sviluppo di software commerciale, e Microsoft aveva da poco aggiunto il supporto del C++ al suo compilatore C.
Riga 6:
Più o meno nello stesso periodo venne lanciato da [[Borland]] un prodotto concorrente denominato [[Object Windows Library]] (OWL), inserito nel compilatore [[Turbo C]] di Borland. Siccome aveva una struttura [[object oriented]] superiore, OWL per un certo periodo ebbe più successo di MFC, tuttavia perse quote di mercato quando i suoi aggiornamenti mancarono di supportare le nuove caratteristiche di Windows, ed in seguito non venne più prodotta.
Quando MFC venne introdotta, le potenze di calcolo e la memoria disponibile nei computer erano risorse limitate. Per questo motivo Microsoft decise per la gestione dei messaggi di windows di non avvalersi delle ''funzioni virtuali'', uno dei meccanismi più potenti offerti dal C++ ma fonte di un discreto [[overhead]], e di utilizzare al loro posto una speciale sintassi basata su macro. Siccome però le macro non dispongono di un sufficiente controllo dei tipi da parte del compilatore, il loro uso è stato spesso fonte di bug. Oltre alle code di messaggi, anche la [[serializzazione (programmazione)|serializzazione]] e la [[gestione delle eccezioni (programmazione)|gestione delle eccezioni]] furono basate su [[macro (informatica)|macro]] anziché su caratteristiche native del C++ che proprio per questo tardarono ad affermarsi negli anni. Queste caratteristiche sono ancora presenti nelle versioni attuali di MFC.
Da un punto di vista pratico, lo sviluppo di programmi Windows con MFC risulta molto più rapido e semplificato rispetto all'uso diretto delle [[Windows API]], anche se la loro conoscenza è quasi indispensabile per un programmatore MFC a causa della poca astrazione introdotta dalla libreria di classi. Uno dei vantaggi maggiori deriva dal fatto che gli handle degli oggetti vengono gestiti automaticamente dalla libreria e chiusi quando gli oggetti vengono distrutti.
|