Le projet WinCore développe une couche de compatibilité avec Win32/WGL, permettant de compiler du code d'applications Windows écrit en C/C++ en utilisant l'API Win32 classique, afin de l'exécuter sur Linux et macOS. WinCore intercepte les gestionnaires classiques Win32 et utilise des backends multiplateformes pour le rendu via SDL3 ou SDL2. Le code est écrit en C++ et est distribué sous la licence LGPLv3.
Le projet est le résultat d'une réévaluation de la bibliothèque LDL, du même auteur, qui en est venu à la conclusion qu'au lieu de concevoir une nouvelle API, il est plus logique de prendre l'interface procédurale éprouvée par le temps de l'API Win32 et de la rendre portable sur différents systèmes d'exploitation et appareils. L'idée est que le code est écrit selon les règles de Win32, mais est compilé nativement et fonctionne sous Windows, Linux et macOS.
La bibliothèque est écrite en C++98 strict pour une portabilité maximale, mais exporte des fichiers d'en-tête C89, garantissant la compatibilité descendante et facilitant les liaisons avec Rust, Zig, Python et d'autres langages via C FFI. À ce jour, 2 backends ont été ajoutés — SDL2 et SDL3. À l'avenir, il est prévu d'ajouter des backends pour XLib et Wayland.
L'auteur ne vise pas à émuler toutes les fonctionnalités de Windows et se concentre uniquement sur les sous-systèmes pour le multimédia et les moteurs. Actuellement, 5 fonctions de Kernel32.dll (gestion des modules, temps système et délais), 25 fonctions de User32.dll (création de fenêtres, boucles de messages, position du curseur et traitement des entrées), 5 fonctions de Gdi32.dll (sélection de format pixel, affichage de bitmaps et commutation de buffers) et 4 fonctions de Opengl32.dll (création, suppression et activation des contextes WGL) sont implémentées.


Source : opennet.ru
