Представлена ​​бібліотека WinCore для роботи Win32-програм Linux и macOS

Проект WinCore розвиває шар сумісності з Win32/WGL, що дозволяє компілювати код Windows-програм, написаний на C/C++ з використанням класичного API Win32, для запуску Linux и macOS. WinCore перехоплює класичні обробники Win32 і використовує крос-платформні бекенди для малювання через SDL3 або SDL2. Код написаний на C++ та поширюється під ліцензією LGPLv3.

Проект став результатом переосмислення бібліотеки LDL, того ж автора, який дійшов висновку, що замість проектування чергового API логічніше взяти перевірений часом процедурний інтерфейс Win32 API і зробити його переносимим на різні ОС та пристрої. Ідея в тому, що код пишеться за правилами Win32, але нативно компілюється і працює в Windows, Linux и macOS.

Бібліотека написана на строгому C++98 для максимальної переносимості, але експортує чисті заголовні файли C89, що гарантує зворотну сумісність і дозволяє легко робити біндинги до Rust, Zig, Python та інших мов через C FFI. На даний момент додано 2 бекенди - SDL2 і SDL3. У майбутньому планується додати бекенди для XLib та Wayland.

Автор не ставить за мету, емулювати всі можливості Windows і фокусується лише на підсистемах для мультимедіа та двигунів. В даний час реалізовано 5 функцій Kernel32.dll (управління модулями, системний час та затримки), 25 функцій User32.dll (створення вікон, цикли повідомлень, позиція курсору та обробка введення), 5 функцій Gdi32.dll (вибір піксельного формату, виведення бітмапів та перемикання буферів і перемикання буферів. активація контекстів WGL).



Джерело: opennet.ru
Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster