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

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



"Представлена библиотека WinCore для работы Win32-программ в Linux и macOS"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлена библиотека WinCore для работы Win32-программ в Linux и macOS"  +/–
Сообщение от opennews (??), 06-Окт-26, 21:17 
Проект WinCore развивает слой совместимости с Win32/WGL, позволяющий компилировать  код Windows-программ, написанный на C/C++ с использованием классического API Win32, для запуска в  Linux и macOS. WinCore перехватывает классические обработчики Win32 и использует кросс-платформенные бэкенды для отрисовки через SDL3 или SDL2. Код написан на C++  и распространяется под лицензией LGPLv3...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=66412

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 06-Окт-26, 21:17   –4 +/–
Программы на win32 api остались в 95 году, у них есть примеры, где это можно применить? Опять нейронки?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #8

2. Сообщение от Ваня фанат СПО из подмосковья (?), 06-Окт-26, 21:20   –9 +/–
> написанный на C/C++

привет из 90х

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #36

3. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:22   +3 +/–
Для написания движков, графических утилит. Портировпния старых игр. Но на данный момент, поддержка winapi ограничена.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

4. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:25   +/–
На первый взгляд да 90-ые. Но это один API, для инициализации, окна, событий, работы с gl, в будущем с vk. И библиотека имеет поддержку нескольких бэкендов. Проще портировать не только на другие библиотеки, а на другие ос, новые или старые.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

5. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:26   –2 +/–
Добавьте пожалуйста в тему несколько скриншотов с гитзаьа для визуализации. Они как раз ламповые. Просто что бы показать, что проект в активной разработке и уже работает базовый функционал.
Ответить | Правка | Наверх | Cообщить модератору

6. Сообщение от Аноним (6), 06-Окт-26, 21:27   +4 +/–
Чем это лучше вайна?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9

7. Сообщение от Аноним (7), 06-Окт-26, 21:29   +/–
очиридной реактос получается штоли? тока чет мало функций пальцев рук и ног хватит. памочь не мешало-бы товарищу, хатя думаю нейроночка лихко справится.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11

8. Сообщение от warlock66613email (ok), 06-Окт-26, 21:31   +1 +/–
Почти все программы под Windows в конечном счёте используют Win32 API. Может вы перепутали, потому что думаете, что в 64-битных Windows Win64 API? Нет, такого в природе нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #10

9. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:33   +2 +/–
Вайн нужен для бинарной трансляции. Данная библиотека работает на уровне исходников.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #16, #17

10. Сообщение от Аноним (1), 06-Окт-26, 21:34   +/–
Нет, я думаю, что в венде больше 40 штатных тулкитов сбоку от винапи и конкретно винапи ими либо не используется, либо используется минимально (например, параметры окна задают). И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #20, #34

11. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:35   +/–
Нет не реактос, это просто библиотека стимулирующая winapi, функции и функционал. Это нужно, что портировать или писать игры софт используя winapi и легко портировать под разные известные бэкенды SDL, SFML или нативно под xlib и wayland.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #13, #40

12. Сообщение от Аноним (22), 06-Окт-26, 21:36   –1 +/–
> Проект стал результатом переосмысления библиотеки LDL, того же автора, который пришёл к выводу...

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #15

13. Сообщение от Аноним (22), 06-Окт-26, 21:37   –1 +/–
Чувак, для этого уже изобрели Wine.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

14. Сообщение от Ivan_83 (ok), 06-Окт-26, 21:39   +/–
Клёво, жаль только что внутри кресты, а учитывая что это 98 - то не понятно зачем.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #31

15. Сообщение от Ivan_83 (ok), 06-Окт-26, 21:41   +/–
wine для запуска готовых бинарников.
А тут ты можешь взять эту либу и вместо гтк/кт/вихвиджетов и прочего шлака сделать гуй. Либо наверное какие то примитивные проги уже сейчас собрать нативно под линухом.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #18, #19

16. Сообщение от Gentoofan (?), 06-Окт-26, 21:43   +1 +/–
а что насчёт https://gitlab.winehq.org/wine/wine/-/wikis/Winelib-User...?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #22

17. Сообщение от Аноним (22), 06-Окт-26, 21:45   –1 +/–
> Вайн нужен для бинарной трансляции. Данная библиотека работает на уровне исходников.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

18. Сообщение от Аноним (22), 06-Окт-26, 21:47   +/–
> wine для запуска готовых бинарников

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #21, #24

19. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:47   +/–
Да, сейчас поддержка именно мультимедиа части, окна, события, ввод, инициализация gl, и зачатки GDI. Дальше потоки в упрощено модели. То есть один поток на окно, без ipc между окнами как в оригинальном win32. Остальные примитивы это рисунмые объекты.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #28

20. Сообщение от Ivan_83 (ok), 06-Окт-26, 21:48   +/–
> И любая прогпамма выпущенная после 95 года не будет зависеть от конкретно винапи.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #23

21. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:49   +/–
Я осилил базовые функции для написания 2d,3d движка. Дальше будет больше. Этой новостью я ещё ищу контрибуторов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #25

22. Сообщение от Аноним (22), 06-Окт-26, 21:49   +2 +/–
> а что насчёт
> 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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

23. Сообщение от Аноним (1), 06-Окт-26, 21:51   +/–
окна это меньшая из проблем при портировании
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

24. Сообщение от Ivan_83 (ok), 06-Окт-26, 21:51   +1 +/–
> Вот именно: даже пересобирать не нужно.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #26

25. Сообщение от Аноним (22), 06-Окт-26, 21:52   +/–
> Я осилил базовые функции для написания 2d,3d движка

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #27

26. Сообщение от Аноним (22), 06-Окт-26, 21:55   –1 +/–
>> Вот именно: даже пересобирать не нужно.
> А вот я бы хотел нативно чтобы был WinAPI для гуя на "линухе",

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #38

27. Сообщение от JordanCpp2email (?), 06-Окт-26, 21:57   +/–
Так в этом суть, что зависимость только от Winapi, но работать он может на всех версиях SDL 1,2,3. Sfml, raylib и других бэкэндах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #32

28. Сообщение от Ivan_83 (ok), 06-Окт-26, 22:00   +/–
Так нужен хотя бы базовый набор контролов: прогрессбар, текстбокс, комбобокс, листбокс, кнопка. Меню, тулбар, прогресс бар.
Поддержка сабкласинга.
Ещё неплохо бы поддержку диалогов из ресурсов и вообще инструментарий какой то чтобы эти ресурсы компелять, хотя бы окна с иконками и может ещё что то.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

29. Сообщение от Ананоним (?), 06-Окт-26, 22:00   +/–
> Интересно как скоро можно будет собрать с этим Miranda NG - они давно хотели портироватся, но проект состоит наверное на 80% из WinAPI кода.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

31. Сообщение от JordanCpp2email (?), 06-Окт-26, 22:02   +/–
C++ 98 для поддержки обширного числа ос новых, старых, а так же железа. Код максимально прост, не перегружен фичами. На си это бы все выглядело сложнее.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #33

32. Сообщение от Аноним (22), 06-Окт-26, 22:12   +/–
> Так в этом суть, что зависимость только от Winapi, но работать он может на всех версиях SDL 1,2,3. Sfml, raylib и других бэкэндах.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #39

33. Сообщение от Ivan_83 (ok), 06-Окт-26, 22:15   +/–
MessageQueue и WindowManager у вас только крестовые функции из либ юзают, не вижу сложностей их не юзать а взять что то другое из С либ или притащить/написать.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #35

34. Сообщение от warlock66613email (ok), 06-Окт-26, 22:23   +/–
Нет, никаких "сбоку" в винде нет, кроме упомянутых DirectX/OpenGL. Единственный способ не использовать WinAPI — использовать ядерное API, но программы на ядерном API большая редкость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

35. Сообщение от JordanCpp2email (?), 06-Окт-26, 22:32   +/–
Я думаю для многопоточности взять ptheard что бы реализовать winapi примитивы для всех систем. Это проще, чем для бэкенда на SDL 1 использовать его примитивы, для SDL 2 его примитивы и т.д

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #37

36. Сообщение от Инопланетянин (?), 06-Окт-26, 22:49   +2 +/–
Нулевые были классные...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

37. Сообщение от Ivan_83 (ok), 06-Окт-26, 22:54   +/–
Я кажется где то (FreeRDP-winpnr) видел готовые куски, посмотрите там - у них тоже свой слой винапи есть, хоть и мизерный.
https://github.com/FreeRDP/FreeRDP/blob/master/winpr/include...
и там дальше...
Хотя выглядит там всё внутри переусложнённым, хз реально это всё надо или можно просто обойтись врапперами на posix threads.


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

38. Сообщение от Ivan_83 (ok), 06-Окт-26, 23:02   +/–
Мне не нравится запускать через вайн.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

39. Сообщение от Ivan_83 (ok), 06-Окт-26, 23:05   +/–
Сравните сколько софта написано под SDL и сколько под WinAPI.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #42

40. Сообщение от Вася Пупкин (?), 06-Окт-26, 23:07   +/–
зачем на этом писать что-то новое? крос-компилировать старое - тут вопросов нет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

41. Сообщение от ппппппп (?), 06-Окт-26, 23:09   +1 +/–
> написанный на C/C++

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #44

42. Сообщение от Аноним (1), 06-Окт-26, 23:15   +/–
кстати, все игры на unreal engine на sdl
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39

43. Сообщение от Аноним (44), 06-Окт-26, 23:32   +1 +/–
Автор выбрал правильный путь. Просто спросить нейросеть.
Ответить | Правка | Наверх | Cообщить модератору

44. Сообщение от Аноним (44), 06-Окт-26, 23:35   +/–
Будет null/++ грамотей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #45

45. Сообщение от Аноним (45), 07-Окт-26, 00:14   +/–
1/++ будет. Оба вы грамотеи :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

46. Сообщение от MooSE (ok), 07-Окт-26, 00:22   +/–
Всё равно пока не понял: а чем оно отличается от winelib+winegcc+winemaker? Когда мне вот вот очень было надо код на pure c + winapi собрать под Linux мне вполне хватило winegcc.

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

Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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