Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

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

Дата публикации: 06-10-2026 15:14:47

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

Основное содержимое страницы с новостью.

Проект 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 (выбор пиксельного формата, вывод битмапов и переключение буферов) и 4 функции Opengl32.dll (создание, удаление и активация контекстов WGL).

CFD0C5CECEC5D4_1791313217.pngCFD0C5CECEC5D4_1791313233.png
  1. Главная ссылка к новости (https://github.com/JordanCpp/W...)
  2. OpenNews: Релиз графической библиотеки LDL 0.3, оптимизированной для маломощных систем
  3. OpenNews: Опубликована мультимедийная библиотека LDL, оптимизированная для маломощных систем
  4. OpenNews: Проект SDL3Lite развивает версию библиотеки SDL3 с поддержкой старых систем
  5. OpenNews: Доступен порт GTK+ 1.3 для Windows 11
Автор новости: JordanCpp2 Лицензия: CC BY 3.0 Короткая ссылка: https://opennet.ru/66412-wincore Ключевые слова: wincore, ldl
1.1, Аноним (1), 21:17, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]   –1 +/–
Программы на win32 api остались в 95 году, у них есть примеры, где это можно применить? Опять нейронки?
 
 
2.3, JordanCpp2 (?), 21:22, 06/10/2026 [^] [^^] [^^^] [ответить]   +2 +/–
68052e45735587194e9703a113968ef8.jpgДля написания движков, графических утилит. Портировпния старых игр. Но на данный момент, поддержка winapi ограничена.
 
2.8, warlock66613 (ok), 21:31, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
c78fd5dd587ad72f6ee5c23152779f2d.jpgПочти все программы под Windows в конечном счёте используют Win32 API. Может вы перепутали, потому что думаете, что в 64-битных Windows Win64 API? Нет, такого в природе нет.
 
 
3.10, Аноним (1), 21:34, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
Нет, я думаю, что в венде больше 40 штатных тулкитов сбоку от винапи и конкретно винапи ими либо не используется, либо используется минимально (например, параметры окна задают). И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.
 
 
4.20, Ivan_83 (ok), 21:48, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
fcc6fe652ff7aca8290e1f94107aa648.jpg> И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.

Я как то слабо себе представляю такое, хотя писать начал в 2003 и закончил году в 2016 под венду то.
Насколько я знаю, там есть вот эти оконные винапи либо ты берёшь опенгл/директХ и дальше там сам внутри рисуешь.
Но даже так ты остаёшься внутри "вин апи" пространства и его оконной части, как минимум windowsstation держит весь твой сеанс внутри desktop (если правильно помню названия).

А всё что не опенгл/директХ - оно оперирует внутри именно что оконными винапи, и не важно скрыто это за слоями абстракций или нет.

 
 
5.23, Аноним (1), 21:51, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
окна это меньшая из проблем при портировании
 

 
2.4, JordanCpp2 (?), 21:25, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgНа первый взгляд да 90-ые. Но это один API, для инициализации, окна, событий, работы с gl, в будущем с vk. И библиотека имеет поддержку нескольких бэкендов. Проще портировать не только на другие библиотеки, а на другие ос, новые или старые.
 

1.5, JordanCpp2 (?), 21:26, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]   –1 +/–
68052e45735587194e9703a113968ef8.jpgДобавьте пожалуйста в тему несколько скриншотов с гитзаьа для визуализации. Они как раз ламповые. Просто что бы показать, что проект в активной разработке и уже работает базовый функционал.
 
 
2.9, JordanCpp2 (?), 21:33, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgВайн нужен для бинарной трансляции. Данная библиотека работает на уровне исходников.

Нужно с этой библиотекой собрать winapi приложение.

 
 
 
4.22, Аноним (22), 21:49, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> а что насчёт
> Winelib

Насчет этого автор тоже не в курсе. 👍

Winelib is a development toolkit which allows you to compile your
Windows applications on Unix.
Most of Winelib code consists of the Win32 API implementation

 
3.17, Аноним (22), 21:45, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> Вайн нужен для бинарной трансляции. Данная библиотека работает на уровне исходников.

"работает на уровне исходников" - это что такое, лол? Вы о динамической линковке (которая как раз и применяется в WinAPI/Wine) ничего не слышали, да?

> Нужно с этой библиотекой собрать winapi приложение

Нет, не нужно, ибо winapi приложения уже и так работают в Wine без каких-либо перекомпиляций.

Скажи спасибо МС за самый стабильный API для Линукса, лол.

 

1.7, Аноним (7), 21:29, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]   +/–
очиридной реактос получается штоли? тока чет мало функций пальцев рук и ног хватит. памочь не мешало-бы товарищу, хатя думаю нейроночка лихко справится.
 
 
2.11, JordanCpp2 (?), 21:35, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgНет не реактос, это просто библиотека стимулирующая winapi, функции и функционал. Это нужно, что портировать или писать игры софт используя winapi и легко портировать под разные известные бэкенды SDL, SFML или нативно под xlib и wayland.

Код будет работать одинаково везде, без переписывания. Цель в этом.

 

1.12, Аноним (22), 21:36, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]   +/–
> Проект стал результатом переосмысления библиотеки LDL, того же автора, который пришёл к выводу...

...что настало время очередного нейрослоп-проекта, азазазаза!

> логичнее взять проверенный временем процедурный интерфейс Win32 API и сделать его переносимым на разные ОС и устройства

Автор, алё, Wine уже много лет как существует.

 
 
2.15, Ivan_83 (ok), 21:41, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
fcc6fe652ff7aca8290e1f94107aa648.jpgwine для запуска готовых бинарников.
А тут ты можешь взять эту либу и вместо гтк/кт/вихвиджетов и прочего шлака сделать гуй. Либо наверное какие то примитивные проги уже сейчас собрать нативно под линухом.

Правда учитывая объявленные автором числа реализованного то даже хэлловрот будет сложновато собрать.

 
 
3.18, Аноним (22), 21:47, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> wine для запуска готовых бинарников

Вот именно: даже пересобирать не нужно.

> А тут ты можешь взять эту либу и вместо гтк/кт/вихвиджетов и прочего шлака сделать гуй

Нет, не могу, потому что автор осилил вон полторы функции из всего WinAPI.

 
 
4.21, JordanCpp2 (?), 21:49, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgЯ осилил базовые функции для написания 2d,3d движка. Дальше будет больше. Этой новостью я ещё ищу контрибуторов.
 
 
5.25, Аноним (22), 21:52, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> Я осилил базовые функции для написания 2d,3d движка

Во-первых, зачем тебе WinAPI для какого-либо движка, при наличии SDL и подобных либ?

Во-вторых, ты что, правда еще и NIH 3д движок собираешься писать? 🤦

 
 
6.27, JordanCpp2 (?), 21:57, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgТак в этом суть, что зависимость только от Winapi, но работать он может на всех версиях SDL 1,2,3. Sfml, raylib и других бэкэндах.
 
 
7.32, Аноним (22), 22:12, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> Так в этом суть, что зависимость только от Winapi, но работать он может на всех версиях SDL 1,2,3. Sfml, raylib и других бэкэндах.

Адекватные люди делают как раз наоборот: скрывают платформоспецифичные API под SDL и им подобными. Дабы скрыть и обойти ограничения и баги этих поюлатформоспецифичных API, предоставив одинаковое поведение на всех платформах.

Но ничего, с твоим подходом тебя впереди ждет много удивительных открытий, лол.

 
4.24, Ivan_83 (ok), 21:51, 06/10/2026 [^] [^^] [^^^] [ответить]   +1 +/–
fcc6fe652ff7aca8290e1f94107aa648.jpg> Вот именно: даже пересобирать не нужно.

А вот я бы хотел нативно чтобы был WinAPI для гуя на "линухе", чтобы можно было и нотепад++ собрать и своё что то налабать.
гтк мне не нравится, кт даже пробовать не хочу.

> Нет, не могу, потому что автор осилил вон полторы функции из всего WinAPI.

Так репе двое суток всего.

 
 
5.26, Аноним (22), 21:55, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
>> Вот именно: даже пересобирать не нужно.
> А вот я бы хотел нативно чтобы был WinAPI для гуя на "линухе",

Wine и так нативный. Он не поверх Gtk/Qt/etc. И Notepad++ можно собрать, и вообще написать виндовую прогу с нуля.

Хз, что тебе еще для счастья нужно.

 
3.19, JordanCpp2 (?), 21:47, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgДа, сейчас поддержка именно мультимедиа части, окна, события, ввод, инициализация gl, и зачатки GDI. Дальше потоки в упрощено модели. То есть один поток на окно, без ipc между окнами как в оригинальном win32. Остальные примитивы это рисунмые объекты.

Этого хватит для 90% софта. Остальное слишком глубоко работает с win32.

 
 
4.28, Ivan_83 (ok), 22:00, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
fcc6fe652ff7aca8290e1f94107aa648.jpgТак нужен хотя бы базовый набор контролов: прогрессбар, текстбокс, комбобокс, листбокс, кнопка. Меню, тулбар, прогресс бар.
Поддержка сабкласинга.
Ещё неплохо бы поддержку диалогов из ресурсов и вообще инструментарий какой то чтобы эти ресурсы компелять, хотя бы окна с иконками и может ещё что то.

Без этого всего даже хэлловрот не соберётся, тот что был в вижалс++ 6 версии в темплейтах.

Меня всегда останавливал объём работы и вопросы лицензионности.
Я ещё помню сколько сотен там всяких WM_ сообщений было и что для каждого контрола ещё наверное по сотне своих специфичных сообщений.

GL то прекрасно и без этого портируется.

 

1.14, Ivan_83 (ok), 21:39, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]   +1 +/–
fcc6fe652ff7aca8290e1f94107aa648.jpgКлёво, жаль только что внутри кресты, а учитывая что это 98 - то не понятно зачем.

Тоже много думал над чем то подобным, но времени не особо притом что работы там куча.

Ещё не понятно не наложет ли МС свою DCMA лапу, а то оракл с кем то там долго судился за заголовочники джавы или что то такое.

Интересно как скоро можно будет собрать с этим Miranda NG - они давно хотели портироватся, но проект состоит наверное на 80% из WinAPI кода.

Хотелось бы увидеть какие то реальные проекты собранные под не венду, типа Notepad++ или ещё что то.

Да, там же потом придётся работу с сокетами тоже делать, вот эти все WSA*** и через оконные сообщения в том числе тоже. А то многие проги не портанутся :)

 
 
2.29, Ананоним (?), 22:00, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
> Интересно как скоро можно будет собрать с этим Miranda NG - они давно хотели портироватся, но проект состоит наверное на 80% из WinAPI кода.

Кто им мешает написать функции-переходники для работы на других платформах как в этой библиотеке? Иди типа если протитип функции написал кто-то в Микрослоп, то уже всё, хана, капирасты задрючат по судам, если они реализуют свои функции для таких прототипов?

 
2.31, JordanCpp2 (?), 22:02, 06/10/2026 [^] [^^] [^^^] [ответить]   +/–
68052e45735587194e9703a113968ef8.jpgC++ 98 для поддержки обширного числа ос новых, старых, а так же железа. Код максимально прост, не перегружен фичами. На си это бы все выглядело сложнее.

С++ 98, собирается любым новым и старым компилятором, потому это большой плюс для разработки и поддержки разных компиляторов.

 

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Создана среда, позволяющая собирать С++ приложения для Windows, Linux, macOS в браузере06.303-10-2026
2Microsoft опубликовал WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows012.5229-09-2026
3Кроссплатформенный мониторинг аппаратных ресурсов на C++ и Python: библиотека hardware_monitor_cpp08.8401-09-2026
4ReactOS Lands Significant DirectX Stack Update From Wine For Enabling More Games06.6924-09-2026
5Опубликован порт файлового менеджера DOS Navigator на Free Pascal-19.5703-10-2026
6LibreOffice 24.8.3 Win x86-64 (PC)014.8605-10-2026
7Windows Terminal v1.25.2733.0 stable patches memory leaks and Xbox controller crashes014.9603-10-2026
8Выпуск Wifibox 0.17, окружения для использования WiFi-драйверов Linux во FreeBSD08.7128-09-2026
9Проект Rocky Linux анонсировал OpenCourant, форк OpenRadioss07.8804-10-2026

Классификация: Пресс-релизы. Схожих патентов: 0. Схожих новостей: 9. Тональность: 0. Информативность: 17.45. Источник: www.opennet.ru.