crossplatform.ru

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

silart
  опции профиля:
сообщение 31.3.2008, 5:19
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


Кто-нибудь пробовал создать на Qt такую Dll, чтобы внутри нее создавались виджеты?
Можно создать на Qt просто динамическую библиотеку, но в ней нельзя создавать виджеты, потому что объект QApplication не создается. (При обращении к графическим функциям вылазит страшное сообщение, что QPaintDevice был создан до QApplication)
Нужен ли он вообще для модальных окон? Если нужен, как его создать, он ведь не умеет конструктора по умолчанию?
Вот пример dll, что сгенерировал мастер:
CODE
class LIBRARY_EXPORT Library
{
public:
Library();
~Library();

void CreateReport(QSqlDatabase db, const QString& path, const ParameterList& params, QWidget* parent = 0);
void MessageBox(const QString& title, const QString& msg, QWidget* parent = 0);

private:
};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
3 страниц V  < 1 2 3 >  
Начать новую тему
Ответов (10 - 19)
silart
  опции профиля:
сообщение 31.3.2008, 11:18
Сообщение #11


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 31.3.2008, 16:13) *
Давай, сначала попробуем собрать мой проект, раз он не собирается.

Может если у тебя получится его собрать, тогда будет все в порядке и с openrpt. :)


Вот что пишет:
CODE
Moc'ing testdll.h...
Системе не удается найти указанный путь.
Project : error PRJ0019: A tool returned an error code from "Moc'ing testdll.h..."
Project : warning PRJ0018 : The following environment variables were not found:

Где эти пути указываются, ума не приложу.
Вроде все правильно указано
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silart
  опции профиля:
сообщение 31.3.2008, 11:36
Сообщение #12


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


У нас разные настройки студии.
Я не могу собрать проект из-за того, что ui_testdll.h не найден.
И указать путь метакомпилятору я не знаю где. Вроде везде где можено посмотрел... :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 31.3.2008, 11:39
Сообщение #13


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Студия тут не причем, moc должен сам определить что, откуда и куда он должен брать и генерить.

Попробуй сделать ребилд полный, иногда помогает, когда moc начинает дурить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 31.3.2008, 11:40
Сообщение #14


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Хотя может проблема в том, что я сделал пример на 4.3.0 и это наверное где-то в файле проекта прописано...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.3.2008, 11:44
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


qmake надо поэксплуотриовать, только как подстудией его пользуют незнаю, вам виднее, вообщем чтобы новые мэйкфайлы или файл проекта студии получить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silart
  опции профиля:
сообщение 31.3.2008, 11:49
Сообщение #16


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


ViGOur, не могли бы вы мне прислать проект в виде pro-файла, а то версии разные, может из-за этого.
Я повсякому пробовал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 31.3.2008, 12:16
Сообщение #17


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(silart @ 31.3.2008, 12:49) *
ViGOur, не могли бы вы мне прислать проект в виде pro-файла, а то версии разные, может из-за этого.
Я повсякому пробовал.
Смотри аттач.
Прикрепленные файлы
Прикрепленный файл  testDll.zip ( 1.89 килобайт ) Кол-во скачиваний: 216
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silart
  опции профиля:
сообщение 31.3.2008, 14:59
Сообщение #18


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 31.3.2008, 17:16) *
Смотри аттач.


Проект скачал, открыл, вроде все преобразовалось, только вот библиотека стала не проектом dll, а проектом статической библиотеки.
Ну да ладно, подправил, вроде собралась dll-ка. Только эта dll-ка не хочет загружаться с помощью QLibrary... Ну и ладно, загрузил ее обычным статическим способом (раннее связывание), так загрузилась... но вот проблема осталась той же. Опять пишет что QPaintDevice до QApplication.
Может из-за того что разные версии Qt? Или из-за того, что что у меня проект собирается со статическими версиями библиотек? Может быть такое или нет?
Во всяком случае спасибо вам, ViGOur. Вы и так на меня уже много времени потратили.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 31.3.2008, 15:13
Сообщение #19


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Да вроде не должно быть зависимости статическая или динамическая сборка.
Ведь может понадобиться как та так и другая сборка одновременно в проекте.

Последний архив, я компилил так:
qmake
nmake
без qmake -project, чтобы не портить pro файл.
Разумеется как для exe так и для dll.

Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silart
  опции профиля:
сообщение 31.3.2008, 15:48
Сообщение #20


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 31.3.2008
Пользователь №: 138

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 31.3.2008, 20:13) *
Да вроде не должно быть зависимости статическая или динамическая сборка.
Ведь может понадобиться как та так и другая сборка одновременно в проекте.

Последний архив, я компилил так:
qmake
nmake
без qmake -project, чтобы не портить pro файл.
Разумеется как для exe так и для dll.

Библиотека должна быть статической, если заметил там я создал еще def файл в папке проекта библиотеки и в pro файле указал его.


Механизм QLibrary мутный какой-то. lib-файл тоже не хочет загружать...
Вообще это все нужно для плагинов, мне он необязательно нужен. Я могу и статически связать dll с exe.
Но все равно никак не работает.

С QApplication вроде работало, но только немодальный диалог создавало, а модальнывй никак...
В чем же проблема...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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


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