crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Гость_Артем_*
сообщение 6.11.2012, 14:00
Сообщение #1





Гости








    


Здравствуйте, уважаемые форумчане.

Есть задача написать кросплатформенную динамическую библиотеку, внутри которой задействованы многопоточность и сетевые взаимодействия. Конечно, qt привлекает своим функционалом, стабильностью, легкостью разработки и тд. Перечислять плюсы можно долго. Однако разрабатываемая бибилиотека должна линковаться к любым приложениям, независимо от того используют ли они qt или нет.

И в этом загводка. Для работы Qt требуется объект QApplication или QCoreApplication, которые создают петлю событий, обрабатывают события от ОС и др источников, запускают обработку очереди событий и тд. Этот объект создается в main(). Если приложение, основано на qt, то все в порядке. А если нет.. Где его создавать и возможно ли это? Можно ли сделать такую библиотеку?

Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Гость_Гость_*
сообщение 7.11.2012, 16:47
Сообщение #2





Гости








    


Так я понимаю вызов exec() это и есть запуск QeventLoop внутри QThread.

Пробовал запускать петлю событий в библиотеке, где создавал объект, наследуясь от QThread. При линковке библиотеки к обычному (не qt-шному) консольному приложению. пишет в консоль
QEventLoop cannot be used without QApplication

таймер при этом не работает, но при этом поток в методе run() входит в exec() и не выходит из нее до вызова quit().
пробовал переносить таймер и в основной и в рабочий поток, используя moveToThread(), все ра вно не работает.

При этом при линковке бибилиотеки с qt-приложением все работает как часы.
При добавлении в библиотеку QCoreApplication тоже все работает.

Вопрос соответственно сводится к следующему: не влияет ли создание QCoreApplication на основную программу?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 14.7.2025, 1:50