Das WinCore-Projekt entwickelt eine KompatibilitĂ€tsschicht zu Win32/WGL, die es ermöglicht, Windows-Anwendungen, die in C/C++ mit dem klassischen Win32-API geschrieben wurden, fĂŒr Linux und macOS zu kompilieren. WinCore fĂ€ngt klassische Win32-Handler ab und verwendet plattformĂŒbergreifende Backends fĂŒr die Darstellung ĂŒber SDL3 oder SDL2. Der Code ist in C++ geschrieben und wird unter der LGPLv3-Lizenz veröffentlicht.
Das Projekt ist das Ergebnis einer Neubewertung der LDL-Bibliothek desselben Autors, der zu dem Schluss kam, dass es sinnvoller ist, anstelle eines neuen API einen bewĂ€hrten prozeduralen Win32-API-Ansatz zu wĂ€hlen und ihn auf verschiedene Betriebssysteme und GerĂ€te portierbar zu machen. Die Idee ist, dass der Code nach den Regeln von Win32 geschrieben wird, aber nativ kompiliert und in Windows, Linux und macOS ausgefĂŒhrt wird.
Die Bibliothek ist in striktem C++98 fĂŒr maximale PortabilitĂ€t geschrieben, exportiert jedoch reine C89-Header-Dateien, was die RĂŒckwĂ€rtskompatibilitĂ€t garantiert und es ermöglicht, einfach Bindungen an Rust, Zig, Python und andere Sprachen ĂŒber C FFI zu erstellen. Bislang wurden 2 Backends â SDL2 und SDL3 â hinzugefĂŒgt. In Zukunft ist geplant, Backends fĂŒr XLib und Wayland hinzuzufĂŒgen.
Der Autor hat nicht das Ziel, alle Funktionen von Windows zu emulieren, sondern konzentriert sich nur auf Subsysteme fĂŒr Multimedia und Engines. Derzeit sind 5 Funktionen von Kernel32.dll (Modulmanagement, Systemzeit und Verzögerungen), 25 Funktionen von User32.dll (Fenstererstellung, Nachrichtenzyklen, Cursorposition und Eingabeverarbeitung), 5 Funktionen von Gdi32.dll (Auswahl von Pixelformaten, Bitmap-Ausgabe und Bufferumschaltung) sowie 4 Funktionen von Opengl32.dll (Erstellung, Löschung und Aktivierung von WGL-Kontexten) implementiert.


Quelle: opennet.ru
