Microsoft Foundation Classes: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
Riga 6:
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.
 
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ù prodottaprodotto.
 
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.