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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как собрать в виде библиотеки  (Прочитано 4969 раз)
usefull
Гость
« : Июль 24, 2009, 16:25 »

Здраствуйте.

Я хотел бы узнать у опытных специалистов. Можно ли собрать QT приложение в виде динамически подключаемой библиотеки и вызывать методы QT приложения. если можно то опишите пожалуйста всю процедуру
Записан
BRE
Гость
« Ответ #1 : Июль 24, 2009, 16:43 »

Ну так она по умолчанию собрана как динамическая библиотека (точнее несколько динамических библиотек).  Подмигивающий
Записан
Rcus
Гость
« Ответ #2 : Июль 24, 2009, 16:46 »

А мнение неопытных неспециалистов вас случайно не интересует? Я думаю речь идет про использование сходное с описанным в http://doc.trolltech.com/solutions/4/qtwinmigrate/winmigrate-walkthrough.html#plugin-extension
Записан
usefull
Гость
« Ответ #3 : Июль 24, 2009, 17:33 »

Может не понятно написал...

Вот у меня есть довольно большая программа стороннего разработчика (дальше Программа 1)... я хочу сделать к ней GUI-шку (дальше GUI-шка Смеющийся), которая бы запускалась в новом thread-е и отображала какую либо информацию о происходящем в первичном продукте. Я могу добавить какието функции в исходный код Программы 1, но не могу повлиять на его сборку. Т.о. я не смогу воспользоваться qmake-ом. Ну вот поэтому я решил сделать GUI-шку в виде libGUI.so и подключать уже библиотеку к Программе 1... По подключению уже есть методы и сделать это не сложно. Но вот как собрать GUI-шку в таком виде...

Вопрос может быть совсем простой, но просто не имею опыта работы с make и qmake. И с libtool тоже кстати. подскажите в какую сторону копать... Разобраться сам попробую. Если же ткнете пальцем, то буду очень благодарен...
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Июль 24, 2009, 17:40 »

usefull, в принципе мордочку в dll'ку засунуть можно. Однако, помни/знай мордочка написанная на Qt может работать только в главном потоке!
Записан

Юра.
usefull
Гость
« Ответ #5 : Июль 24, 2009, 20:01 »

Нда, плохая новость... Так как все таки запихнуть в dll-ку? может получится чтонибудь сделать
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Июль 24, 2009, 23:13 »

Все сильно зависит от "Программы1" - там нет qmake - но Qt там есть? Или имеется возможность использовать Qt классы - тогда можно было бы использовать QPluginLoader - указывая ему напрямую вашу dll. Вообще упрощенный plugin loader можно и в голом C++ сваять - ничего сложного все обращения в классе который сидит в DLL через void* и ряд экспортных функций кот. с этим указателем работают

Код:
void* makeInstance();

void showDLLWindow( void * pWnd );
void closeDLLWindow( void * pWnd );

и т.д.

Внутри реализации каждой такой функции приведение указателя к реальному классу и работа с ним...

Когда то я так делал - все норм. работало, позже стал использовать QPluginLoader
Записан
usefull
Гость
« Ответ #7 : Июль 27, 2009, 13:25 »

Народ. Я проверил... У меня QT приложение нормально работает в новом thread-е. Так что каких-то новых методов не нужно (я благодарен за предложенные методы, просто я предложил такой метод изза сильных ограничений которые наложенны на обе программы). Пожалуйста распишите хотя бы в двух словах как собрать в виде библиотеки типа libGUI.so

Буду очень благодарен...
Записан
usefull
Гость
« Ответ #8 : Июль 28, 2009, 16:07 »

ВСем спасибо за участие... Я смог собрать как надо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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