jak inni to zauważyli, aplikacje Microsoft zostały przeniesione do Mac i prawdopodobnie łatwiej było przekształcić podstawowe API/struktury w przenośną warstwę abstrakcji, zamiast przepisać same aplikacje ... tak jak zespół QuickTime podobno zrobił podczas przenoszenia w odwrotnym kierunku (z Maca na Windowsa - - są podobne warianty #if WIN32 w nagłówkach Carbon Maca). Np. Zamiast przeszukiwać całą bazę kodu aplikacji Win32, szukającą CreateFile() i zastępując lub warunkując każdy odnośnik za pomocą #ifdefs, po prostu utwórz wersję Mac CreateFile() i zrób to. Powtórz dla każdego wywołania Win32 API.
Zaskakujący fragment historycznych ciekawostek jest następujący: końcowy efekt wysiłków Microsoft w zakresie przenoszenia był dostępny dla stron trzecich w formie "Microsoft Visual C++ Cross-Development Edition dla komputerów Macintosh". Tak więc każdy mógł wziąć swoją aplikację Win32 i przenieść ją na Maca używając tej warstwy abstrakcji.
Cytat z mojego wiernego MSDN października 1996 CD:
„Microsoft Visual C++ w wersji 4.0 Cross-Development Edition dla komputerów Macintosh ułatwia przenoszenie programów dla środowiska operacyjnego Microsoft Windows do Apple 680x0 Macintosh i Power Macintosh środowiska. Zaprojektowany, aby zapewnić pełne środowisko programistyczne, Visual C++ dla komputerów Macintosh obsługuje C, standardową bibliotekę C czasu pracy, C++, większość Microsoft Win32 API, w tym OLE i ODBC, i Microsoft Foundation Class Library. "
Więc zawierał nawet MFC. Domyślam się, że każdy "#ifdef _MAC" jest artefaktem MSVC++ Cross-Development Edition dla Macintosh (R.I.P.).
W podobny sposób, patrząc na iTunes dla Windows, widzisz kilka plików '.plist' i coś o nazwie' Foundation.framework' lub podobnych, IIRC. – asveikau
@asveikau: Pewnie.Wiele produktów Apple dla Windows nawet przynosi z nimi wygląd MacOS (tak jak zrobiły to produkty Microsoftu dla Solaris), więc myślę, że robią to na odwrót i zapewniają MacOS, takie jak API jako otoki wokół Windows. – jarnbjo
@jarnbjo Właściwie dla tych bibliotek ObjC jest to znacznie wcześniejsze niż Mac OS X. IIRC, NeXT miał Foundation/AppKit działa pod NT w latach 90-tych. – asveikau