| 
 | 
| 
 
Программа: одно ядро - разнные 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&msg=39601074&tid=1547246]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    62ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    48ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 246ms | 
| total: | 400ms | 

| 0 / 0 | 

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