WinCore-bibliotheek geïntroduceerd voor het werken met Win32-programma's op Linux en macOS

Het WinCore-project ontwikkelt een compat laag met Win32/WGL, waarmee Windows-programmacode die in C/C++ is geschreven met gebruik van de klassieke Win32-API, kan worden gecompileerd om op Linux en macOS te draaien. WinCore onderschept klassieke Win32-handlers en gebruikt cross-platform backends voor rendering via SDL3 of SDL2. De code is geschreven in C++ en wordt verspreid onder de LGPLv3-licentie.

Het project is het resultaat van een heroverweging van de LDL-bibliotheek, dezelfde auteur die tot de conclusie kwam dat het logischer is om in plaats van een nieuwe API te ontwerpen, de bewezen procedurele interface van de Win32 API te nemen en deze overdraagbaar te maken naar verschillende besturingssystemen en apparaten. Het idee is dat de code wordt geschreven volgens de Win32-regels, maar native wordt gecompileerd en werkt op Windows, Linux en macOS.

De bibliotheek is geschreven in strikt C++98 voor maximale overdraagbaarheid, maar exporteert pure headerbestanden in C89, wat zorgt voor achterwaartse compatibiliteit en het eenvoudig maakt om bindings naar Rust, Zig, Python en andere talen te maken via C FFI. Tot nu toe zijn er 2 backends toegevoegd - SDL2 en SDL3. In de toekomst is het de bedoeling om backends voor XLib en Wayland toe te voegen.

De auteur heeft niet de ambitie om alle mogelijkheden van Windows te emuleren en richt zich alleen op subsystemen voor multimedia en engines. Momenteel zijn er 5 functies van Kernel32.dll geïmplementeerd (modulebeheer, systeemklok en vertragingen), 25 functies van User32.dll (venstercreatie, berichtenloops, cursorpositie en invoerverwerking), 5 functies van Gdi32.dll (kiezen van pixelindeling, bitmapweergave en bufferswitching) en 4 functies van Opengl32.dll (creëren, verwijderen en activeren van WGL-contexten).



Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster