Russian Qt Forum
Ноябрь 23, 2024, 11:29
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Работа с сетью
>
Dll на Qt + QTcpSocket для вызова не в Qt-приложении
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Dll на Qt + QTcpSocket для вызова не в Qt-приложении (Прочитано 15293 раз)
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #15 :
Август 17, 2013, 13:40 »
Цитата: Bepec от Август 17, 2013, 13:34
Тут закавыка интересная. QThread не запуститься без QApplication. Точнее не запуститься его цикл событий.
А в чем проблема создавать экземпляр QCoreApplication?
Записан
dim.lian_net
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #16 :
Август 17, 2013, 13:40 »
В Dllmain при DLL_PROCESS_ATTACH: создаю объект QCoreApplication core(argc,0);
НЕ ВЫЗЫВАЮ exec();
создаю поток QThread() и в методе run(); вызываю exec();
то Qt выдаeт: "QEventLoop: Cannot be used without QApplication" и соответственно сигналы не работают.
Записан
dim.lian_net
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #17 :
Август 17, 2013, 13:43 »
А зачем его создавать, если eventloop не запускать?
Записан
Bepec
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #18 :
Август 17, 2013, 13:48 »
eventLoop не запускается, если он не создан в отдельном WinApi потоке.Во всяком случае мне его заставить работать не удалось без потока. Мб чуть попозже посмотрю свои исходники - кину.
«
Последнее редактирование: Август 17, 2013, 13:51 от Bepec
»
Записан
dim.lian_net
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #19 :
Август 17, 2013, 14:09 »
А без QCoreApplication::exec() он может работать?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #20 :
Август 17, 2013, 14:11 »
Цитата: dim.lian_net от Август 17, 2013, 13:40
В Dllmain при DLL_PROCESS_ATTACH: создаю объект QCoreApplication core(argc,0);
НЕ ВЫЗЫВАЮ exec();
создаю поток QThread() и в методе run(); вызываю exec();
то Qt выдаeт: "QEventLoop: Cannot be used without QApplication" и соответственно сигналы не работают.
Ага. Создаете экземпляр QApplication на стеке и он разрушается при выходе из DllMain.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #21 :
Октябрь 03, 2013, 15:47 »
И всё-таки, кому-нибудь удалось запустить механизм сигнал/слот внутри dll из
консольного не Qt
Windows приложения?
Записан
Bepec
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #22 :
Октябрь 03, 2013, 16:39 »
Из консольного не пробовал, но из обычного получалось.
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #23 :
Октябрь 04, 2013, 09:29 »
Цитата: Bepec от Октябрь 03, 2013, 16:39
Из консольного не пробовал, но из обычного получалось.
Неоднократно тут на форуме встречал твоё обещание выложить кусочек кода на эту тему
.
Если не затруднит, покажи свою реализацию DLLMain.
Записан
Bepec
Гость
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #24 :
Октябрь 04, 2013, 09:33 »
Омм... Это да, постоянно забываю найти и выложить.
PS если ещё припомнишь что я там обещал выложить - напиши в ЛС. А то пипец на работе заставляет забывать
Разгрести надо.
«
Последнее редактирование: Октябрь 04, 2013, 09:37 от Bepec
»
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Dll на Qt + QTcpSocket для вызова не в Qt-приложении
«
Ответ #25 :
Октябрь 09, 2013, 15:11 »
Раз уж публично попрекнул Вереса невыполнением обещаний, публично и поблагодарю.
Тут обещанное выложено
http://www.prog.org.ru/topic_25323_0.html
И таки-да, оно работает. Проблема у меня лично была в том, что для того, чтобы заработали циклы обработки сообщений в DLL нужно было все объекты, которые участвуют в процессе сигнал/слот, создавать в той же потоковой функции, где создается QCoreApplcation.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...