Профиль: Аноним (вход | регистрация)
OpenNET

[ новости /+++ | форум | теги |    ]

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

06.10.2026 18:14 (MSK)

Проект 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).



  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
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (92) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:17, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/–
    Программы на win32 api остались в 95 году, у них есть примеры, где это можно применить? Опять нейронки?
     
     
  • 2.3, JordanCpp2 (?), 21:22, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/–
    Для написания движков, графических утилит. Портировпния старых игр. Но на данный момент, поддержка winapi ограничена.
     
     
  • 3.55, Смузихлёб забывший пароль (?), 04:56, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/–
    И много у тебя старых игр с исходниками и работающей компиляцией ?
     
     
  • 4.56, Аноним (56), 05:36, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Открой для себя wikipedia... Если тебе не нужно не значит что никому.
     
  • 2.8, warlock66613 (ok), 21:31, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +13 +/–
    Почти все программы под Windows в конечном счёте используют Win32 API. Может вы перепутали, потому что думаете, что в 64-битных Windows Win64 API? Нет, такого в природе нет.
     
     
  • 3.10, Аноним (1), 21:34, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Нет, я думаю, что в венде больше 40 штатных тулкитов сбоку от винапи и конкретно винапи ими либо не используется, либо используется минимально (например, параметры окна задают). И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.
     
     
  • 4.20, Ivan_83 (ok), 21:48, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.

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

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

     
     
  • 5.23, Аноним (1), 21:51, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    окна это меньшая из проблем при портировании
     
  • 4.34, warlock66613 (ok), 22:23, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Нет, никаких "сбоку" в винде нет, кроме упомянутых DirectX/OpenGL. Единственный способ не использовать WinAPI — использовать ядерное API, но программы на ядерном API большая редкость.
     
     
  • 5.69, Европа (?), 12:05, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    И кроме WinRT - современная альтернатива Win32Api, которая используется в UWP-приложениях. В WinRT тоже обертки над NativeAPI, как и в Win32Api.
     
     
  • 6.70, warlock66613 (ok), 12:06, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Спасибо, не знал.
     
  • 6.85, Аноним (85), 10:04, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Под NativeAPI раньше было принято подразумевать функции с префиксами Nt (Zw), то есть шлюзы в ntoskernel через ntdll, то есть примерно всё, кроме графики. Просто потому, что образ win32k.sys проецировался в адресные пространства не всех процессов.

    Я правильно понимаю, что в WinRT опкоды для вызова ядра не размазаны по аналогам gdi32.dll, а выделены в некий аналог ntdll? Если так, то получается как бы ещё один способ.

     
  • 3.50, Аноним (-), 02:01, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    А мне казалось что в Windows сейчас даже пуск написан на React Native. Так что никакого Win32 API кода в приложениях сейчас и близко нет. Оно разве что могло где-то глубоко в тулкитах и фреймворка за кучей слоёв абстракций осталось. А в таких случаях подобные библиотеки не помогут.
     
     
  • 4.53, warlock66613 (ok), 03:39, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну, про код я как раз ничего не говорил. А библиотека заявляется не для портирования уже существующих приложений, а для написания новых.
     
  • 4.59, Аноним324 (ok), 06:57, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    Пуск на реакте это же брехня, пуск всё так же на плюсах с кучей xml. Из реакта там только поиск через интернет, что логично, потому что там буквально webview еджа.
     
  • 4.62, Shantikov (?), 08:46, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    С Win32 API работает буквально каждое окно проводника, большинство программ с графическим интерфейсом, среды выполнения, фоновые службы, ну и консольные утилиты, типа ping
     
  • 2.82, Феникс123 (?), 06:05, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Программы на win32 api остались в 95 году

    Первое новое API после Win32 - это вроде Metro, которое появилось в 2012 и на нем никто особо не писал (потому что твое приложение поставить можно было только через стор). Ну то есть явное не 95г. Рендерить еще можно через OpenGL, DirectX, Vulcan, я так понимаю что это эмулируется еще лучше.

    По теме: наконец то стабильное API на Linux.

     
     
  • 3.83, Аноним (1), 07:26, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Метро это не апи, это, грубо говоря, winrt. Оно давно заменило нативные приложения и большинство программ в сторе на uwp. Помимо этого, были ещё wpf и windows forms, которые абстрагировали win32. Гораздо интереснее была бы поддержка winmm через sdl -- в этом месте совместимость венды всегда лажает.
     
     
  • 4.84, Феникс123 (?), 09:43, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Что-то я не разобрал ваш комментарий. Для Metro приложений (потом metro пришлось переименовать во что-то более скучное но менее trademark защищенное) был свой API для разработки приложений, вот этот встроенный в ОС API оказалось новым способом писать приложения, и это было намного позже 95г. WPF/WinForms - просто обертка поверх win32, т.е. все еще win32. Но в целом мысль такая есть, что на Windows кроме того что есть в user32.dll и kernel32.dll (что главным образом считается win32) было еще куча разных компонентов, которые приложения могли использовать и которые которые переписывать на линуск очень скучно.
     

  • 1.2, Ваня фанат СПО из подмосковья (?), 21:20, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/–
    > написанный на C/C++

    привет из 90х

     
     
  • 2.4, JordanCpp2 (?), 21:25, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    На первый взгляд да 90-ые. Но это один API, для инициализации, окна, событий, работы с gl, в будущем с vk. И библиотека имеет поддержку нескольких бэкендов. Проще портировать не только на другие библиотеки, а на другие ос, новые или старые.
     
  • 2.36, Инопланетянин (?), 22:49, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +9 +/–
    Нулевые были классные...
     
     
  • 3.58, Аноним (56), 05:41, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Нет 90-тые, а это уже пошло - игры на C# и даже на JS и т.п. Притом и на Сях - с тормозами как на этих...
     
     
  • 4.81, Инопланетянин (?), 01:07, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > 90-тые
    > игры на JS

    Тяжело... тяжело (с)

     
  • 2.86, Феникс123 (?), 10:07, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > привет из 90х

    У С++ было "потерянное десятилетие", когда считалось что будущее за .NET или Java. После того как переписывание Windows на .NET получило былинный отказ (времена Vista). После этого объявили возращение C++ (стандарты C++11, 14, etc), у Микрософт было время трансляций Going Native, где активно оживляли и развивали C++. То есть привет из 2010x. Сейчас время когда переписывают все на раст, тем более что переписывание вдруг резко подешевело. Нельзя исключать что в будущем будет Going Unsafe.

     
     
  • 3.90, Метрика (?), 10:52, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    C++ хоронили все кому не лень, любой язык вышедший после 1983 год мамой клянется закопать C++, но сам в эту яму попадает, там уже братская могила языков убийц плюсов
     

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

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

     
     
  • 3.16, Gentoofan (?), 21:43, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    а что насчёт https://gitlab.winehq.org/wine/wine/-/wikis/Winelib-User%27s-Guide?
     
     
  • 4.22, Аноним (22), 21:49, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +7 +/–
    > а что насчёт
    > 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

     
     
  • 5.88, Аноним (85), 10:08, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Естественно, автор в курсе существования альтернатив и изучил их в достаточной степени.

    Если эксперт не в курсе, зачем авторы становятся авторами, это тоже вполне естественно.

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

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

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

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

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

     
     
  • 4.52, Аноним (52), 02:43, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >Скажи спасибо МС за самый стабильный API для Линукса

    В линукс пользовательское api очень стабильно, если что.

     
     
  • 5.77, Метрика (?), 13:42, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    За win в названии мелкомягкие предьяву кинут на сходке
     
  • 4.89, Аноним (85), 10:29, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А я слышал о динамическом связывании страшные вещи, все этим занимаются:

    $ file /bin/bash
    /bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked

     
  • 3.72, Аноним (72), 12:48, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А если софт был написан с MFC или Borland OWL, то пойдёт?
     
  • 2.75, Аноним (75), 13:15, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Пока оно не лучше nanowindows, и до winelib далеко очень.
     
     
  • 3.48, aaa (??), 01:45, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    как раз поддержку xlib из mesa собираются удалять
    https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/44957
     

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

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

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

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

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

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

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

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

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

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

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

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

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

     
     
  • 6.27, JordanCpp2 (?), 21:57, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Так в этом суть, что зависимость только от 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, предоставив одинаковое поведение на всех платформах.

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

     
     
  • 8.39, Ivan_83 (ok), 23:05, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Сравните сколько софта написано под SDL и сколько под WinAPI ... текст свёрнут, показать
     
     
  • 9.42, Аноним (1), 23:15, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    кстати, все игры на unreal engine на sdl... текст свёрнут, показать
     
  • 4.24, Ivan_83 (ok), 21:51, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    > Вот именно: даже пересобирать не нужно.

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

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

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

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

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

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

     
     
  • 6.38, Ivan_83 (ok), 23:02, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Мне не нравится запускать через вайн.
     
  • 5.49, Аноним (49), 02:00, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Winelib
     
  • 3.19, JordanCpp2 (?), 21:47, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да, сейчас поддержка именно мультимедиа части, окна, события, ввод, инициализация gl, и зачатки GDI. Дальше потоки в упрощено модели. То есть один поток на окно, без ipc между окнами как в оригинальном win32. Остальные примитивы это рисунмые объекты.

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

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

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

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

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

     
  • 4.71, Имя (?), 12:21, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    "Этого хватит для 90% софта. Остальное слишком глубоко работает с win32"
    а может и не для 90% , а для 75%
    и не для 75%, а для 45%
    автор слишком оптимистично настроен.. не стоит водить за нос других, разочарование будет болезненным для вас
    Резюме: проект никогда не будет доведен до состояния когда им можно будет пользоваться. Обещанные возможности не реализуемы
     

  • 1.14, Ivan_83 (ok), 21:39, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Клёво, жаль только что внутри кресты, а учитывая что это 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 [^] [^^] [^^^] [ответить]  
  • +/–
    C++ 98 для поддержки обширного числа ос новых, старых, а так же железа. Код максимально прост, не перегружен фичами. На си это бы все выглядело сложнее.

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

     
     
  • 3.33, Ivan_83 (ok), 22:15, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    MessageQueue и WindowManager у вас только крестовые функции из либ юзают, не вижу сложностей их не юзать а взять что то другое из С либ или притащить/написать.

    DWORD GetTickCount();
    void Sleep(DWORD dwMilliseconds);
    Можно было и не тягать из SDL а реализовать внутри на POSIX API.

     
     
  • 4.35, JordanCpp2 (?), 22:32, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Я думаю для многопоточности взять ptheard что бы реализовать winapi примитивы для всех систем. Это проще, чем для бэкенда на SDL 1 использовать его примитивы, для SDL 2 его примитивы и т.д

    Спасибо за обратную связь. Я учту и думаю, что так и поступлю. Максимальное упрощение где возможно. Но вот на си программировать желания нет. Хотя си89 это мега портабельность которая вообще возможна.

     
     
  • 5.37, Ivan_83 (ok), 22:54, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Я кажется где то (FreeRDP-winpnr) видел готовые куски, посмотрите там - у них тоже свой слой винапи есть, хоть и мизерный.
    https://github.com/FreeRDP/FreeRDP/blob/master/winpr/include/winpr/thread.h
    и там дальше...
    Хотя выглядит там всё внутри переусложнённым, хз реально это всё надо или можно просто обойтись врапперами на posix threads.


    > Но вот на си программировать желания нет.

    Так у вас там и так по сути С код, от крестов только те два модуля, в остальных разве что синтаксис поправить и всё.
    Для очереди можно взять sys/queue.h - TAILQ_HEAD()... оно есть на линухе и бсд и мак и чуть ли не кусок посикса.
    Для списка окон в теории тоже, как минимум для начала сойдёт, пока окон мало. Хотя технически ничего не мешает использовать какую то надстройку над обычным массивом, где hwnd=index.

     

  • 1.41, ппппппп (?), 23:09, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    > написанный на C/C++

    Не бывает C/C++
    Есть C
    Есть C++
    А если ты их поделишь друг на друга, то будет ++ какой-то

     
     
  • 2.44, Аноним (44), 23:35, 06/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Будет null/++ грамотей.
     
     
  • 3.45, Аноним (45), 00:14, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/–
    1/++ будет. Оба вы грамотеи :)
     
  • 2.60, morphe (?), 07:25, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    В выражении

    C/C++

    Нет точки следования, и это UB

    Надо писать

    int a = C;
    int b = C++;

    a/b == 1

     
     
  • 3.67, Аноним (67), 11:24, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    а если так: (C/C)++ ?
     
  • 2.68, _kp (ok), 11:35, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >>Не бывает C/C++

    *опа есть а слова нет?

    Большие проекты часто написаны на C и C++ одновременно. Разговорное сокращение - на C/C++.

     
     
  • 3.74, Аноним (72), 13:05, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Во, хоть один человек логично растолковал. Надеюсь, положил конец давнему спору.
     
     
  • 4.94, тоже Аноним (ok), 14:18, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    На самом деле, реально есть С/С++ - это та каша, которую дают в вузах.
    Когда вроде бы учат писать на С++, но на массивах, однобайтовых строках с завершающим нулем, указателях, функциях... в общем, из C++ используется только std::cout
     

  • 1.43, Аноним (44), 23:32, 06/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Автор выбрал правильный путь. Просто спросить нейросеть.
     
  • 1.46, MooSE (ok), 00:22, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Всё равно пока не понял: а чем оно отличается от winelib+winegcc+winemaker? Когда мне вот вот очень было надо код на pure c + winapi собрать под Linux мне вполне хватило winegcc.

    Какую задачу решает сабж, которую он не смог решить с помощью winelib?

     
  • 1.61, Ананимус (?), 07:51, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    ПО в котором из исходников используют голый WinAPI для интерфейса не много. Кроме hellowoed'ов, студенческих дидактических работ и очень старого ПО. Используют различный фреймфорки для интерфейсов. Перетранслировать нечего.
    Это автор и сам похоже заметил, ограничившись частичной реализацией, ибо, например, что то полезное взять и перетранслировать с гитхаб не выйдет, ибо на winapi там только мелочи
     
     
  • 2.65, Аноним (65), 09:55, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты не в курсе что значит WinAPI
     

  • 1.63, Аноним (63), 09:51, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >API Win32

    На экосистеме Linux оно не нужно. И даже, его присутствие вредно.

     
     
  • 2.66, Аноним (-), 10:58, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >>API Win32
    > На экосистеме Linux оно не нужно. И даже, его присутствие вредно.

    Жаль альтернатив нет.

     
     
  • 3.79, Аноним (79), 15:18, 07/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В смысле?! Использовать GTK и Qt религия не позволяет?
     
     
  • 4.93, тоже Аноним (ok), 14:15, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    GTK по юзабельности большой привет передавал.
    Но есть wxWidgets с движком на WinAPI под Винды и на GTK под Линь, позволяющим не окунаться ни в то, ни в другое - и писать так же независимо от платформы, как и на Qt.
     
  • 3.91, _kp (ok), 12:34, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >>Жаль альтернатив нет.

    На голом API Win32,  Вы изматеритесть писать GDI приложение, а полученные в итоге портянки никто не примет, не оценит, не похвалит.  Это и в прошлом веке было мазохизмом, еще в Windows 3.1, до Windows 95. И привело в коявлению OLE и COM объектов, повлению сред разработки типа VisualBasic, VisualStudio, Delphi.
    В итоге для GUI используют различные библиотеки, но не мучатся с WinAPI из исходников.

    Что касается попыток реализации. Много параметров передаются по указателам и модифицируются, полноценная реализация только GDI будет уже толстой, и нетривиальной.
    А есть еще COM-объекты, который очень часто используются...

    И даже если это гипотетитчески реализовать, то всплывет отсутствие примеров ПО на голом WinAPI, то есть не получится портировать какие то объёмы ПО. А писать, на том, что в Windows не использовали массово, так себе идея.

     
     
  • 4.92, тоже Аноним (ok), 14:11, 08/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Даже сам M$ обернул WinAPI сначала MFC, потом всякими WinForms.
    А Борланд - VCL, которые использовались еще чаще.

    Его место - глубоко в потрохах библиотек, а в прикладном коде может использоваться разве что в ситуации, когда весь код - на кроссплатформенной библиотеке, но конкретно под Винды надо сделать какой-нибудь специфический хак.

     

  • 1.76, Аноним (76), 13:37, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Во-первых, удивительно, как много тут экспертов по программированию для венды.

    Во-вторых, удивительно, как мало призывов переписать на специально изобретённом для бесконечного переписывания (потому что разобраться в слопокоде нереально, тотальная нечитабельность) языке, который на этапе свадьбы гарантирует, что невесту никто не обесчесчивал.

     
  • 1.78, тоже Аноним (ok), 14:54, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/–
    WinAPI? Это кладбище антипаттернов, заваленное функциями с десятком параметров, половина которых передается по ссылке или указателю, потому что непредсказуемо меняется внутри этого говнокода, при этом под капотом у этих функций дерганье системных вызовов к тому, чего в нормальных системах отродясь не было и не будет?

    Как можно не хотеть писать на таком сокровище НОВЫЙ код под открытые системы в 2026?..

     
  • 1.80, Аноним (80), 17:35, 07/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Cygwin чтоли переизобрел?
     
  • 1.95, Аноним (-), 16:21, 08/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > Автор не ставит цели, эмулировать все возможности Windows
    > и фокусируется только на подсистемах для мультимедиа и движков.

    Тогда пусть обломится, ValvE его давно уже обскакал на этом поле - но все это надо узкому кругу пропритарны виндопрог.

     
  • 1.96, Аноним (96), 22:10, 08/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    что не обладает достаточным опытом для написания кросс-платформанных библиоте... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: