Russian Qt Forum
Ноябрь 23, 2024, 03:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtDBus - избитая тема?  (Прочитано 6919 раз)
Bepec
Гость
« : Сентябрь 10, 2012, 10:05 »

Приветствую знатоков Улыбающийся

Вопрос: возможно ли собрать и использовать QtDBus под windows? Как?

PS1: Да, я видел тему с сборкой под 2005 студию. Не получилось. Точнее собрать DBus получилось, но вот собрать проект использующий его - нет.
PS2: Да, я смотрел примеры из example, да они не компилятся и неправильные по заверениям нашего же форума.
PS3: Да, сам разобраться не смог, особенно с упоротостью Qt, который не видит QDBusAbstractAdaptor и прочие классы. (пути прописаны, но увы...)
PS4: Прошу помощи Подмигивающий

PPS Qt 4.7.2 (сменить низя), W7x64, руки. Буду рад маленькому примеру хотя бы создающего этот адаптерс...
Записан
mutineer
Гость
« Ответ #1 : Сентябрь 10, 2012, 10:19 »

Насколько я видел в интернетах реализация DBus под венды кривая, косая и не факт что работает...
Но в любом случае, ты DBus в винду поставил?
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #2 : Сентябрь 10, 2012, 13:04 »

Года два назад пробовал - локально всё работало, но забросил - ибо показалось геморройным. Как обстоит сейчас - не знаю.
Записан
Bepec
Гость
« Ответ #3 : Сентябрь 10, 2012, 13:07 »

Собственно я почему соблазнился - возможность использовать службу и любое количество программ на 1 шине. :/

Видимо придётся на сокетах всё делать опять. Ибо действительно геморройное.

PS DBus стоит, примеры qtшные бачат, но... Но блин они не собираются Веселый  Т.е. бинарники работают, но код примеров какой то отстойно неправильный, на что оно и плюется.

PPS я так понимаю, сокеты под винду - единственно нормальный вариант взаимодействия нескольких приложений?
Записан
Serr500
Гость
« Ответ #4 : Сентябрь 10, 2012, 13:22 »

я так понимаю, сокеты под винду - единственно нормальный вариант взаимодействия нескольких приложений?
Можно ещё посмотреть в сторону QSystemSemaphore и QSharedMemory. Но по-хорошему под виндой надо использовать [именованные] каналы ([named] pipe), которые, если не ошибаюсь, реализует QLocalSocket.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Сентябрь 10, 2012, 13:29 »

Можно ещё посмотреть в сторону QSystemSemaphore и QSharedMemory. Но по-хорошему под виндой надо использовать [именованные] каналы ([named] pipe), которые, если не ошибаюсь, реализует QLocalSocket.
QSystemSemaphore + QSharedMemory = хорошая рекомендация. Там часто той передачи с гулькин нос, чего запрягать кобылу (DBus или др)? Да и по скорости QSharedMemory первая
Записан
Bepec
Гость
« Ответ #6 : Сентябрь 10, 2012, 13:39 »

Меня прельщало в DBUS возможность связи с нескольких сессий, обёртка с сигналами и возможность подрубать скок угодно любых программ на шину Улыбающийся

Посмотрю семафоры и шаред мемори, авось пойму что нибудь Улыбающийся

PS спасибо за ответы.
Записан
Serr500
Гость
« Ответ #7 : Сентябрь 10, 2012, 18:52 »

Если ограничиться только виндой и требуется посылать сообщения нескольким приложениям, то, возможно, подойдут виндовые широковещательные сообщения. Например, SendMessage с hWnd=HWND_BROADCAST или BroadcastSystemMessage
Записан
Bepec
Гость
« Ответ #8 : Сентябрь 10, 2012, 19:03 »

Если честно хотелось кроссплатформенности Улыбающийся Просто работаю % на 90 под виндой, но эти 10%...
Ну в общем понятно Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Сентябрь 10, 2012, 19:16 »

Если честно хотелось кроссплатформенности Улыбающийся Просто работаю % на 90 под виндой, но эти 10%...
Ну в общем понятно Улыбающийся
Помнится потратил на это (семафор + шаред) дня полтора, никаких трудностей не испытал. Так то в нативняке и для 2-х платформ. На Qt должно быть полдня.

Техника простая: в каждом приложении заводите 2 семафора (имена привязываете к полному пути). На одном семафоре приложение ждет, другой сигналит. Шаред кусок делите на участки, чтобы между приложениями они не пересекались (так проще чем лочить). Ну вот собственно и все  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.098 секунд. Запросов: 22.