El proyecto WinCore desarrolla una capa de compatibilidad con Win32/WGL, que permite compilar código de programas de Windows escritos en C/C++ utilizando la API clásica de Win32, para su ejecución en Linux y macOS. WinCore intercepta los manejadores clásicos de Win32 y utiliza backend multiplataforma para renderizar a través de SDL3 o SDL2. El código está escrito en C++ y se distribuye bajo la licencia LGPLv3.
El proyecto es el resultado de la reimaginación de la biblioteca LDL, del mismo autor, que llegó a la conclusión de que en lugar de diseñar otra API, era más lógico tomar la interfaz de procedimientos Win32, probada a lo largo del tiempo, y hacerla portable a diferentes sistemas operativos y dispositivos. La idea es que el código se escribe bajo las reglas de Win32, pero se compila y ejecuta de manera nativa en Windows, Linux y macOS.
La biblioteca está escrita en estricto C++98 para una máxima portabilidad, pero exporta archivos de encabezado C89 limpios, lo que garantiza la compatibilidad retroactiva y permite crear fácilmente enlaces a Rust, Zig, Python y otros lenguajes a través de C FFI. Actualmente se han añadido 2 backends: SDL2 y SDL3. En el futuro se planea añadir backends para XLib y Wayland.
El autor no tiene como objetivo emular todas las capacidades de Windows y se centra solo en subsistemas de multimedia y motores. Actualmente se han implementado 5 funciones de Kernel32.dll (gestión de módulos, tiempo del sistema y retrasos), 25 funciones de User32.dll (creación de ventanas, ciclos de mensajes, posición del cursor y manejo de entradas), 5 funciones de Gdi32.dll (selección de formato de píxeles, salida de bitmaps y cambio de buffers) y 4 funciones de Opengl32.dll (creación, eliminación y activación de contextos WGL).


Fuente: opennet.ru
