Неклассовые средства разработки

Тема в разделе "WASM.UNIX", создана пользователем cresta, 4 июн 2007.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Есть ли какие-либо средство разработки под линукс (не qt и не gambas)
    Примерно в стиле qt, но без этих тупых с++ классов. Никакого ооп. Чисто процедурное и модульное. Аналогично winapi.
    Или это фантастика?
     
  2. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    GTK. Не сказать, что сильно похоже на winapi, но процедурное.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Аналогично винапи нет ничего и, видимо, никогда не будет. Грустно смотреть как GUI-приложения кишат подобным кодом:

    libGUI=dlopen( "libXXX.so",RTLD_NOW );
    if( !libGUI ) libGUI=dlopen( "libXXX.so.2.0.0",RTLD_NOW );
    if( !libGUI ) libGUI=dlopen( "libXXX.so.0.1.0",RTLD_NOW );
    // ...

    В топку такую совместимость :dntknw:
     
  4. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Quantum
    А что, такое обилие несовместимых версий?
    И кстати, чем вы пользуетесь для создания gui и для (больное место) межпроцессного общения?
    В принципе я могу подавить в себе классовую ненависть и юзать qt, но эта qt настолько замкнута в себе, что ничего практически невозможно сделать за пределами свей проги. Никаких средств взаимодействия между разными процессами и взаимодействия с системой в целом.
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Voodoo

    А есть IDE для GTK? А то с нуля тяжеловато наверное выучить весь набор процедур, констант и т.п.
     
  6. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    да ну?
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    rei3er

    Весь интерфейс межпроцессного общения ограничен классом QProcess, типа запустить стороннее приложение и передать ему параметры, и еще пара убогих возможностей.
    Если у тебя другая информация, то подскажи, очень интересуют такие вещи, как мютексы, эвенты, shared section'ы, аналоги виндовых SendMessage, SendMessageCallback, GetMessage, PeekMessage, WaitForSingleObject, WaitForMultipleObjects и т.п.
    В самой системе наверняка есть аналоги, а в QT - нет, ибо это всего лишь gui-библиотека.
     
  8. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    cresta
    Над GTK есть надстройка Glade - если я не ошибаюсь, примерный аналог RC-диалогов. К нему есть дизайнеры в некоторых IDE, и отдельные.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    cresta
    А и нафига в ней это? Дублировать то же самое?
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    cresta
    В винде, если мы линкуем экзешник к библиотеке версии N, а юзер потом обновляет её до версии M>N, то приложение в большинстве случаев продолжает спокойно работать. Зато в Линуксе - облом :dntknw: Спасает только динамическая линковка (в смысле, через dlopen) или через свой загрузчик или перелинковывать обьектники каждый раз после обновления. Создание хардлинка с именем старой версии библиотеки, указывающий на новую, не помогает. Например, не так давно я обновил GTK в Ubuntu 5 - половина графических приложений отказались запускаться :dntknw: Аналогичные проблемы возникали с обновлением stdc++, qt и других библиотек.

    Тем не менее, для GUI я сейчас юзаю GTK.

    Процессам можно посылать сигналы по PID'у стандартными сишными средствами или даже прямо через system call. Или нужно что-то вроде DDE?
     
  11. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Voodoo
    Спасибо.

    Booster
    Всё верно, дублировать незачем. А вот интерфейс (пусть в виде класса) для доступа к апи операционной системы не помешал бы. Очень даже. Как ни странно, для mac и windows апи есть заголовочные файлы qt_mac.h и qt_windows.h а для linux - не нашел :dntknw:
     
  12. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Quantum
    В принципе несовместимость версий меня не пугает: нужно переделать виндовую прогу под линукс, кроме этой проги на машине ничего не будет установлено, поэтому беру мандриву и делаю в ней прогу, никаких обновлений и изменений ни в системе, ни в проге не будет.

    Есть ли русское описание работы с GTK с примерами, как например книга Jasmin Blanchette по QT в переводе Андрея Киселёва? То, что я сегодня нашёл по GTK весьма разрозненно и несистематизировано, да и на английском

    А есть примеры?
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    cresta
    Я надеюсь речь не о кросплатформенности?
    А так в Linux конечно всё это есть. Во некоторые заголовки.

    #include <pthread.h>
    #include <semaphore.h>
     
  14. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    kill
     
  15. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    Если работать с окнами чужими - AFAIK, это только через XLib и т.п. Не припомню никаких оберток.
     
  16. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    :)

    Проще юзать Web-Интерфейс.
    Web-Interface -- это модно, надежно, удобно.
    Этот интерфейс в сочетании с JavaScript и другими features придаст вашему приложению неповторимый колорит.
    Изучи WI сейчас и ты поднимешься на новые высоты.

    WI. Удобство, надежность, масштабность.
     
  17. tigsid

    tigsid Member

    Публикаций:
    0
    Регистрация:
    11 июн 2004
    Сообщения:
    62
    Quantum
    если мы линкуем экзешник к библиотеке версии N, а юзер потом обновляет её до...
    Помоему в nix-ах так же как и win с разделяемыми библиотеками.
    Но в nix любят именовать библиотек как LibName-version.so.version.И с этим действительно проблема.
    Я использовал символьные линки.
    cresta
    Есть ли какие-либо средство разработки
    В качестве IDE использую Anjuta 1.2.4. Как раз заточена под GTK и Glade.
    Правда я этой "заточкой" почти не пользовался.
    еще есть Eclipse. Не пользовался но помоему штука мощная.
     
  18. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    cresta
    на английском и несистематизировано? где искал? глянь сюда http://www.gtk.org/documentation.html
    туторы + API reference. вполне хватает для того чтобы с gtk+ работать. в тех редких случаях когда этого мало, есть сорцы, вполне читабельные между прочим.
    русских доков, к сожалению, не знаю.
     
  19. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Кстати, раз уж речь пошла о GTK, кто-нибудь знает как можно поменять иконку главного окна в GTK 1.2? В GTK 2+ есть для этого функция, а в 1.2 я что-то ничего подобного не могу найти.

    tigsid
    Конечно, нужно использовать символьные линки, но они не всегда помогают, т.к. в новых версиях либ частенько не хватает какого-либо экспорта, который присутствовал в старой версии или определённый экспорт просто переименовывается. Буквально вчера, после обновления библиотек ALSA, ld.so начал орать, что символ asound_ver_1_0_12 (или типа того) не найден в библиотеке libasound.so.1.0.13. Ну, не идиотизм ли это?! Конечно, если пересобрать экзешник с новой либой, то всё начинает работать нормально.
     
  20. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Quantum
    Я думаю, это сделано сознательно, для принудительной привязки к конкретной версии либы.