Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Заблокирован

Можно обмениваться сигналами между разными процессами?

30.12.2014, 13:54. Показов 2707. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть два процесса (Windows) - 1.exe и 2.exe, в обоих процессах используется Qt и есть классы от QObject, можно ли соединить классы от QObject из разных процессов для обмена сообщениями и если да, то как?
P.S.: Это кроссплатформенно ?

Добавлено через 2 минуты
Судя по этому списку http://qt-project.org/doc/qt-4.8/ipc.html ответ отрицательный ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2014, 13:54
Ответы с готовыми решениями:

Обмениваться сигналами и слотами могут только класса наследники от QObject и с макроопределением Q_OBJECT?
? :) ?

Обмен сигналами между процессами
/*12.Процесс 1 открывает файл ипорождает потомка 2. Процесс 1 с интервалом в 1 секунду (через alarm)посылает M сигналов SIG1 процессу 2,...

Обмен переменными между разными процессами
У меня включено 2 процесса. Отдельных. Можно ли, чтобы один процесс создавал такую переменную, чтобы другое ее мог читать. Не...

15
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
30.12.2014, 14:03
Лучший ответ Сообщение было отмечено DukeNukem как решение

Решение

Цитата Сообщение от DukeNukem Посмотреть сообщение
можно ли соединить классы от QObject из разных процессов для обмена сообщениями
Что значит соединить? Через сигналы-слоты - нет конечно же.
IPS подразумевает обмен сообщениями через общую память. Система сигналов-слотов Qt тут ни при чем.
1
Заблокирован
30.12.2014, 14:07  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Система сигналов-слотов Qt тут ни при чем.
Ну..я думал проложить какой - то пайп между процессами и чтоб два QObject-а по этому каналу связи сами нашли общий язык по своему протоколу Ладно, берд конечно. Понял, спасибо. Буду мутить через сеть (шаред мемори в топку, скорость у меня не главное )
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
02.01.2015, 15:29
RPC? qxt добавляет (json/xml)rpc
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.01.2015, 15:44
QSharedMemory чем то не устраивает?
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
02.01.2015, 16:45
Avazart, наверное потому, что вокруг общей памяти нужно делать систему обмена сообщениями, с конкурентным доступом.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.01.2015, 18:41
Ну так по сути там в паре с QSystemSemaphore как я понимаю нужно работать, не думаю что тут сложность большая.
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
02.01.2015, 18:49
реализовывал IPC с помощью QLocalServer + QLocalSocket - предельно просто и максимум эффективно
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
03.01.2015, 21:59
Кудаив, и написать свою RPC? Может проще взять готовую реализацию?
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
03.01.2015, 22:37
Цитата Сообщение от Кудаив Посмотреть сообщение
и максимум эффективно
медленнее чем через общую память.
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
03.01.2015, 23:22
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
и написать свою RPC? Может проще взять готовую реализацию?
зависит от требуемой сложности rpc, я делал простейшую
Цитата Сообщение от RazrFalcon Посмотреть сообщение
медленнее чем через общую память.
не спорю, но в системе QLocalServer-QLocalServer можно активно использовать сигнал-слоты, при использовании общей памяти вообще ничего не эмитится
0
03.01.2015, 23:25

Не по теме:

Кстати, а что аналога CreateEvent()+ WaitForSingleObject() нет?

0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
03.01.2015, 23:27
Цитата Сообщение от Кудаив Посмотреть сообщение
общей памяти вообще ничего не эмитится
обертку можно в пару строк написать, если нужны сигналы
0
03.01.2015, 23:34

Не по теме:

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
RPC? qxt добавляет (json/xml)rpc
А есть опыт удачной сборки этой либы под Qt5.x + MSVC2010 ?
У меня не получилось....
Ошибки компиляции
cd tools\3rdparty\qdoc3\ && ( if not exist Makefile C:\Qt\Qt5.4\5.4\msvc2010_opengl\bin\qmak e.exe C:\Qt\libqxt\tools\3rdparty\qdoc3\qdoc3. pro -o Makefile ) && "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" -f Makefile
"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" -f Makefile.Release
compiling .\apigenerator.cpp .\archiveextractor.cpp .\atom.cpp .\bookgenerator.cpp .\ccodeparser.cpp .\codemarker.cpp .\codeparser.cpp .\command.cpp .\config.cpp .\cppcodemarker.cpp .\cppcodeparser.cpp .\cpptoqsconverter.cpp .\dcfsection.cpp .\doc.cpp .\generator.cpp .\helpprojectwriter.cpp .\htmlgenerator.cpp .\jambiapiparser.cpp .\javacodemarker.cpp .\javadocgenerator.cpp .\linguistgenerator.cpp .\location.cpp .\loutgenerator.cpp .\mangenerator.cpp .\main.cpp .\node.cpp .\openedlist.cpp .\pagegenerator.cpp .\plaincodemarker.cpp .\polyarchiveextractor.cpp .\polyuncompressor.cpp .\qsakernelparser.cpp .\qscodemarker.cpp .\qscodeparser.cpp .\quoter.cpp .\sgmlgenerator.cpp .\tokenizer.cpp .\tree.cpp .\uncompressor.cpp .\webxmlgenerator.cpp
apigenerator.cpp
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Location"
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C2460: Location::null: использует "Location", определяемый в настоящий момент
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(61): см. объявление "Location"
archiveextractor.cpp
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Location"
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C2460: Location::null: использует "Location", определяемый в настоящий момент
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(61): см. объявление "Location"
atom.cpp
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Location"
c:\qt\libqxt\tools\3rdparty\qdoc3\locati on.h(94) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
//...

0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
04.01.2015, 00:00

Не по теме:


Цитата Сообщение от Avazart Посмотреть сообщение
А есть опыт удачной сборки этой либы под Qt5.x + MSVC2010 ?
Смотри что не получается, а не получается собрать qdoc3, который идет вместе с Qt.


Цитата Сообщение от RazrFalcon Посмотреть сообщение
медленнее чем через общую память.
Зависит от требований и реализации. Если требуется общение между N процессами, то общая память становиться узким местом.

Цитата Сообщение от RazrFalcon Посмотреть сообщение
обертку можно в пару строк написать, если нужны сигналы
что-то не видятся эта пара строк.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.01.2015, 00:31
[OFF]
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Смотри что не получается, а не получается собрать qdoc3, который идет вместе с Qt.
Ну хз и чем тут помочь? Ошибки та именно в файлах qxt:
...\libqxt\tools\3rdparty\qdoc3\location.h

Не по теме:

C++ (Qt)
1
2
3
4
5
6
7
//...
    const QString& details = QString()) const;
 
    QT_STATIC_CONST Location null;  // <- !!! строка с ошибкой (№94) !!!
 
    static void initialize(const Config& config);
//...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2015, 00:31
Помогаю со студенческими работами здесь

Передавать числовые данные между двумя разными процессами
Добрый день! Требуется передавать числовые данные ( несколько массивов типа double ) между двумя разными процессами. Один процесс...

WS,WCF,WPF и передача данных между разными процессами (удалёнными\локальными)
Доброе утро. Задача стоит в условиях локальной работы! У меня есть WCF + WindowsService (имитация сервера) Есть WPF приложение...

Подскажите, как в Android-играх можно обмениваться данными онлайн между 2 игроками через интернет?
Задача такая: 1) Нужен онлайн обмен данными через интернет между двумя игроками. (онлайн-игра) 2) И нужно обмен данными между игрой и...

как обмениваться данными между компьютерами ?
как обмениваться данными между компьютерами ? Мне надо написать прогу на чистом winapi то есть без использование компонентов TIdBase !!! те...

Как обмениваться данными между приложениями в сети?
Есть несколько приложений работающих в сети (TCP/IP) Необходимо организовать между ними обмен данными, как это лучше сделать? При помощи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru