Wie andere erwähnt haben, wurden Microsoft-Anwendungen portiert der Mac, und sie fanden es wahrscheinlich einfacher, die zugrunde liegenden APIs/Frameworks in eine portable Abstraktionsschicht umzuwandeln, anstatt die Apps selbst neu zu schreiben ... genau wie das QuickTime-Team bei der Portierung in die entgegengesetzte Richtung (von Mac nach Windows) - In den Carbon-Headern des Mac gibt es ähnliche #if WIN32-Bedingungen. Wenn Sie zum Beispiel die Codebasis Ihrer gesamten Win32-Anwendung nach CreateFile() durchsuchen und jede Referenz durch #ifdefs ersetzen oder konditionieren, erstellen Sie einfach eine Mac-Version von CreateFile() und machen Sie damit fertig. Wiederholen Sie dies für jeden Win32-API-Aufruf.
Das Überraschende an historischer Trivialität ist folgendes: Das Endergebnis von Microsofts Portierungsbemühungen war für Dritte in Form von "Microsoft Visual C++ Cross-Development Edition für Macintosh" verfügbar. So könnte jeder seine Win32-App mit dieser Abstraktionsschicht auf den Mac portieren.
Zitat aus meiner guten alten MSDN Oktober 1996 CD:
„Microsoft Visual C++ Version 4.0 Cross-Development Edition für Macintosh erleichtert die Übertragung von Programmen für die Microsoft Windows-Betriebssystemumgebung auf den Apple 680x0 Macintosh oder Power Macintosh-Umgebung. Entwickelt, um eine vollständige Programmentwicklungsumgebung bereitzustellen, unterstützt Visual C++ für Macintosh C, die Standard-C-Laufzeitbibliothek, C++, den größten Teil der Microsoft Win32-API einschließlich OLE und ODBC sowie die Microsoft Foundation Class Library. "
So enthielt es sogar MFC. Meine Vermutung ist, dass "#ifdef _MAC" ein Artefakt der MSVC++ Cross-Development Edition für Macintosh (R.I.P.) ist.
Ähnlich wie beim Betrachten von iTunes für Windows, sehen Sie eine Reihe von '.plist' Dateien und etwas namens' Foundation.framework' oder ähnliches, IIRC. – asveikau
@asveikau: Sicher.Viele Apple-Produkte für Windows bringen sogar das MacOS-Look & Feel mit (genau wie die Microsoft-Produkte für Solaris), also schätze ich, dass sie es umgekehrt machen und MacOS wie APIs als Wrapper für Windows bereitstellen. – jarnbjo
@jarnbjo Eigentlich ist das für diese ObjC-Bibliotheken wesentlich älter als Mac OS X. IIRC, NeXT hatte Foundation/AppKit unter NT in den 90er Jahren. – asveikau