Название: Создание динамической библиотеки (DLL) Отправлено: Tam-Tam от Октябрь 11, 2007, 00:57 Помогите разобраться с плагинами.
Задача следующая. Есть производный класс от QWidget(допустим с названием MyClass). Кроме создание самого QWidget в его конструкторе с помощью менеджеров компоновок размещаются на созданном QWidget QPushButton, QLineEdit и QLabel. Так же добавляются несколько слотов и сигналов. В результате получается некий диалог с простенькой функциональностью. Дальше создавая экземпляр класса (MyClass *my = new ...) используем как обычный виджет. Требуется запихнуть этот класс в библиотеку и динамически ее распаковать что бы можно было так же создать (MyClass *my = new ...) и использовать класс. Примеры идущие с мануалом Qt не подходят поскольку там классы не наследуются. При попытке сделать по такому же образу столкнулся с проблемой что ни один из методов наследуемого класса после распаковки не виден. Не говоря уже о конструкторе на который компилятор ругается(поскольку отказывается принимать виртуальный конструктор). Помогите с хедерфайлом интерфейса класса и части кода где библиотека распаковывается и создается экземпляр класса. Буду безмерно рад любым примерам. Если сильно лень писать код, опишите хотя бы словами. Название: Re: Плагины Отправлено: pastor от Октябрь 11, 2007, 01:14 Вам нужно создать динамическую либу или плагин к Qt дизайнеру?
Название: Re: Плагины Отправлено: vregess от Октябрь 11, 2007, 07:22 Если нужно наследование, то, по-видимому, целью является динамическая библиотека...
Может поможет : http://prog.org.ru/forum/index.php/topic,6209.0.html Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 11, 2007, 07:50 Вам нужно создать динамическую либу или плагин к Qt дизайнеру? ДинамическуюЕсли нужно наследование, то, по-видимому, целью является динамическая библиотека... Вроде именно то что нужно. Можешь дать исходники своей либы из той темы ? Ты там указывал что есть еще одна либа которая нормально собирается. Ее тоже если можешь дай. Может поможет : http://prog.org.ru/forum/index.php/topic,6209.0.html Название: Re: Плагины Отправлено: vregess от Октябрь 11, 2007, 08:58 Ты там указывал что есть еще одна либа которая нормально собирается. Я наврал)Собирается-то она собирается, но когда тащишь из нее классы - облом. Можешь дать исходники своей либы из той темы? Накидаю тебе по-позже (ща занят) пример простой библиотеки, тебе так легче будет. Куда кидать? Ну или если желаешь - кину свою либу... Выбирай. Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 11, 2007, 11:01 Накидаю тебе по-позже (ща занят) пример простой библиотеки, тебе так легче будет. Куда кидать? Ну или если желаешь - кину свою либу... Выбирай. Можно и попозже. Небольшой пример распаковки, если не сложно, тоже напиши. Скинь все что есть по данной теме. garka.com[собака]mail.ru Название: Re: Плагины Отправлено: ритт от Октябрь 11, 2007, 17:20 какой компилятор? если собираете на вс и методы/классы из либы не видны, могу предположить, что класс не помечен на импорт/экспорт (либо неправильно помечен). если есть время, можее полистать код модуля гуи кутэ - там ведь такая же точно задача для виджетов.
я так же точно использую некоторые диалоги из плагинов - всё замечательно наследуется, если не забывать про порядок импорта/экспорта :) Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 11, 2007, 19:52 я так же точно использую некоторые диалоги из плагинов - всё замечательно наследуется, если не забывать про порядок импорта/экспорта :) Я безумно рад что у тебя пашет. Сделай теперь так что б и у меня пахало ) Поделись примером хоть одним. Название: Re: Плагины Отправлено: ритт от Октябрь 11, 2007, 20:36 как фамильярно
в либе: Код: #include <QtGlobal> затем соответствующая набивка в майдиалог.цпп собираем с дефайном LIB_BUILD затем в программе (считаем, что либу выше подлинковали на этапе сборки или ран-тайм) Код: //... собираем без дефайна LIB_BUILD Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 11, 2007, 23:54 Огромное спасибо
Что изменится если будет другая ОС ? Дефайны поменяются ? Дай пожалуйста еще тот маленький кусочек кода, где либа динамически подлинковывается. Название: Re: Плагины Отправлено: ритт от Октябрь 12, 2007, 00:00 говорим "ос", подразумеваем "компилятор"
для НЕвенды Q_DECL_EXPORT и Q_DECL_IMPORT станут пустыми и ничего не случится > динамически подлинковывается то есть, ран-тайм? смотри ассистант на предмет "как делать плагины" не хочешь плагинами, смотри там же QLibrary* Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 12, 2007, 00:50 то есть, ран-тайм? смотри ассистант на предмет "как делать плагины" не хочешь плагинами, смотри там же QLibrary* Я плагином изначально и пытался сделать. Ничего из этого не вышло. Название: Re: Плагины Отправлено: ритт от Октябрь 12, 2007, 02:14 а что именно не вышло? создать плагин? подключить плагин? создать сущность класса, описание которого хранится в плагине?
Название: Re: Плагины Отправлено: Tam-Tam от Октябрь 12, 2007, 08:12 Отправил примеры на garka.com[собака]mail.ru Спасибо.а что именно не вышло? создать плагин? подключить плагин? создать сущность класса, описание которого хранится в плагине? Создать сущность и как следствие создать плагин. До подключения дело вообще не дошло. |