Come altri hanno notato, le applicazioni di Microsoft sono stati portati a il Mac, e probabilmente hanno trovato più semplice trasformare le API/framework sottostanti in un livello di astrazione portatile, piuttosto che riscrivere le app stesse ... come riportato dal team QuickTime durante il porting nella direzione opposta (da Mac a Windows - - ci sono condizioni # WIN32 simili nelle intestazioni Carbon del Mac). Ad esempio, piuttosto che sfogliare l'intero codice base dell'applicazione Win32 cercando CreateFile() e sostituendo o condizionando ogni riferimento con #ifdefs, basta creare una versione Mac di CreateFile() e utilizzarlo. Ripetere l'operazione per ogni chiamata API Win32.
Il bit sorprendente di trivia storica è questo: il risultato finale dello sforzo di porting di Microsoft era disponibile per terze parti sotto forma di "Microsoft Visual C++ Cross-Development Edition per Macintosh". Così chiunque può prendere la loro app Win32 e portarla su Mac usando questo livello di astrazione.
Citazione dal mio CD fidato MSDN ottobre 1996:
versione "Microsoft Visual C++ 4.0 Cross-Development Edition per Macintosh facilita il trasferimento di programmi per l'ambiente operativo Microsoft Windows per l'Apple 680x0 ambiente Macintosh o Power Macintosh. Progettato per fornire un ambiente di sviluppo del programma completo, Visual C++ per Macintosh supporta C, la libreria di runtime C standard, C++, la maggior parte dell'API Microsoft Win32, inclusi OLE e ODBC e la libreria di classi di Microsoft Foundation. "
Quindi includeva anche MFC. La mia ipotesi è che qualsiasi "_ifdef _MAC" è un artefatto dell'edizione di sviluppo incrociato MSVC++ per Macintosh (R.I.P.).
fonte
2010-12-09 00:22:17
Un po 'come quando guardi iTunes per Windows, vedi un mucchio di file ".plist" e qualcosa chiamato "Foundation.framework" o simile, IIRC. – asveikau
@asveikau: certo.Molti prodotti Apple per Windows portano anche l'aspetto grafico di MacOS (proprio come i prodotti Microsoft per Solaris), quindi credo che lo facciano al contrario e forniscano a MacOS come API un wrapper per Windows. – jarnbjo
@jarnbjo In realtà, per queste librerie ObjC questo precede sostanzialmente Mac OS X. IIRC, NeXT aveva Foundation/AppKit in esecuzione sotto NT negli anni '90. – asveikau