Название: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: Zmeishe от Ноябрь 17, 2011, 12:20 Есть библиотека so/dll
Из неё необходимо узнать тип вызвавшего её приложения. Это несложно. Код: if( QApplication::type() == QApplication::Tty) А как узнать, что вызвавшее приложение было собрано с определённой конфигурацией ? Код: QT = core \ Важно узнать был в секции CONFIG параметр thread или нет, чтобы библиотечные функции адекватно реагировали на многопоточные приложения. Иначе приходиться в библиотечные классы добавлять свойство bool isMultiThread; А в приложениях помнить, что перед запуском потоков это свойство нужно установить в true, чтобы библиотека не показывала диалоги, а высылала сигналы с сообщениями для вывода их в главное окно вызвавшего приложения; Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: Akon от Ноябрь 17, 2011, 14:01 А если вызывающее приложение собиралось не qmake, а другой системой сборки? Экспортируйте из либы оба интерфейса. Можете также сделать macro switching. Пример: char, wchar_t, TCHAR, соответственно printf, wprintf, _tprintf (gcc).
Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: Zmeishe от Ноябрь 21, 2011, 09:10 А если для Gui приложений использовать
QApplication::mainWidget() и сравнить его поток с потоком класса внутри библиотеки? Вот как-то так: Код: void QMyLibObject::myProcess() То есть, если создан объект (указатель) класса, описанного(находящегося) в библиотеке и поток этого наследника от QObject совпадает с потоком mainWidget(), то это одно поточное приложение. Если потоки разные, то это много поточное приложение. Это будет правильно? Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: GreatSnake от Ноябрь 21, 2011, 09:33 А если для Gui приложений использовать Наверное всё-таки не стоит советовать Qt3Support метод.QApplication::mainWidget() Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: Zmeishe от Ноябрь 21, 2011, 09:54 А ещё есть способы выявить много поточность приложения?
Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: BRE от Ноябрь 21, 2011, 11:38 Так может лучше что бы само приложение сообщала все о себе, вызывая одну из функций библиотеки с определенными параметрами?
Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: Zmeishe от Ноябрь 21, 2011, 11:46 Это, как раз, реализовано.
В библиотечном классе есть параметр bool isMultiThread; Но если другой разработчик забудет его выставить/изменить, то много поточное приложение с Гуями будет непредсказуемо падать. Чем больше будет потоков, тем быстрее оно будет падать. Точнее не падать, а Linux его будет прибивать из-за конфликта в Иксах. Я хотел найти способ определения одно и много поточности независимо от склероза других разработчиков. Название: Re: Как узнать конфигурацию приложения Qt по параметрам секции CONFIG в файле pro ? Отправлено: BRE от Ноябрь 21, 2011, 11:57 Я хотел найти способ определения одно и много поточности независимо от Ну так сделай невозможным создать экземпляр этого класса без указания конфигурации - введи параметр о конфигурации в конструктор.склероза других разработчиков. Код
|