|
|
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Приветствую, наверняка вам попадались программы, у которых, скажем, консольное ядро и может быть несколько разных gui , написанных на разных тулкитах или разными авторами. Например эмулятор цепей spice, это ядро и под него есть несколько гуев. Или торрент трекер transmission, аналогично. Интересует, как реализуются такие приложения в плане архитектуры, как гуй взаимодействует с ядром, через какие механизмы, какие паттерны может быть используются и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 20:43 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Есть ядро со своим неким АПИ. А Гуи юзают АПИ и рисуют каждый по своему. Простой пример - погодные/валютные информеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 21:27 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
MPV и к нему SMPlayer, Bomi, Deepin Movie, MPC-Qt, IINA, ... Один из ярких примеров http://www.opennet.ru/opennews/art.shtml?num=48057 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 08:08 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
"Ядро предоставляет АПИ" - это получается гуй обращается к уже рабочей программе(через какие-нибудь сокеты или ещё как можно?) или гуй в своём составе "содержит" эту программу? Т.е где-то в дебрях кода гуя создаётся объект "ядро-программы" и у этого объекта вызываются его методы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 09:42 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont know, оба варианта подходят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 09:46 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Т.е где-то в дебрях кода гуя создаётся объект "ядро-программы" и у этого объекта вызываются его методы? Нет. ГУИ ничего не знает про подробности реализации. Он знает как вызвать тот или иной метод/свойство внешней программы. Пример - ВинАПИ. Вызывая его, вы понятия не имеете, что именно физически делает ОС. Это и не нужно знать. Достаточно правильно вызвать и обработать ответ. Еще пример из жизни - телевизор. Вы клацаете кнопочки на его АПИ и получаете "результат". Как он получает живую картинку - вообще мало кто знает в техн.подробностях. И уж тем более сможет качественно повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 11:03 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Гит запускается множеством разных гуёв просто из командной строки безо всякого апи ) и не сильно страдает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 12:18 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
LSVНет. ГУИ ничего не знает про подробности реализации. Он знает как вызвать тот или иной метод/свойство внешней программы. А у программы как-то можно вызывать её функции? Я знаю, можно вызывать функции например у DLL, загружаем её и вызываем функцию(зная её сигнатуру разумеется, видимо для этого этого, некоторые программы при компиляции требует h-файлы от той проги из которой будут вызывать функционал - Для С/С++). А с обычной программой так можно? Или по сути это та же баблиотека? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 12:51 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont knowА с обычной программой так можно? Или по сути это та же баблиотека?Написать можно ВСЁ!. Главное Зачем? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 12:55 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Petro123, Не писать, а только ликвидировать пробел в знаниях относительно взаимодействия программ. Например, возьмем какую-нибудь утилитку из linux, скажем ту же ls, хочу к ней гуй прилепить, пусть список файлов выдаётся в текстовое поле(абстрактный пример конечно, но чтобы было понятно). Один из вариантов как я понял есть, запустить ls из программы гуя и вывести в текстовое поле результат команды. А ещё есть способы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 13:12 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont know, Статью пишите? Тоже неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 13:25 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Petro123, Нет, не пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 13:26 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont know, Очень много всяких вариантов чтобы описывать. ls это просто утилита как dir.... А вы говорили о ядре и о том что в ядре Наш код. Вы взяли линукс. А андроид? Винда? Слишком широко взяли классифицировать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 14:06 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont know А с обычной программой так можно? Или по сути это та же баблиотека?В отличие от ДЛЛ, обычная программа не обязана иметь АПИ или OLE-объект. Хотя часто их имеет (н-р ms office, 1С). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 14:15 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
Petro123, В линуксе такое встречал, поэтому и привел его в пример, виндой пользуюсь только на работе. Petro123Очень много всяких вариантов чтобы описывать. Вот как раз они мне и интересны, какие бывают варианты? Но из полученных ответов, для себя сделал вывод - возможность сделать отдельный гуи для какой-то программы, должна быть заложена изначально в саму эту программу, к которой этот гуи хотим прилепить. Т.е нельзя взять какую-нибудь программу(консольную) и прилепить к ней свой ui, даже имея её исх. код, по крайней мере его придётся переработать, правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 14:51 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
интерфейс командной строки - универсальный интерфейс - и для программ (как API), и для людей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 15:04 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont knowА с обычной программой так можно? Или по сути это та же баблиотека? Exe-файлу можно ровно так же, как и dll, сделать LoadLibrary, GetProcAddress и так далее, всё это будет работать - при условии, что приложение позаботилось экспортировать свои функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2018, 15:54 |
|
||
|
Программа: одно ядро - разнные GUI, как такое реализуется?
|
|||
|---|---|---|---|
|
#18+
I dont know, авторТ.е нельзя взять какую-нибудь программу(консольную) и прилепить к ней свой ui, даже имея её исх. код, по крайней мере его придётся переработать, правильно Элементарно, даже без исходного кода. Я уже писал пример - гит. авторВот как раз они мне и интересны, какие бывают варианты? Смотри любое межпроцессное взаимодействие (IPC). Хотя бы вот: https://ru.wikipedia.org/wiki/Межпроцессное_взаимодействие На большинстве (а может и на всех) этих взаимодействий возможно построить то, что хочется. На чем-то проще, на чем-то сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 19:33 |
|
||
|
|

start [/forum/topic.php?fid=33&gotonew=1&tid=1547246]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 46ms |
| total: | 234ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...