Название: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: IGHOR от Апрель 04, 2010, 02:16 Пытаюсь сделать Shared DLL в котором будут сохраняться стандартные диалоги.
Раньше с DLL не работал, потому прошу помощи разобраться, может я что-то не так делаю. Пользуюсь сборкой Qt отсюда http://qt.nokia.com/downloads/windows-cpp-vs2008 значит создаю в библиотеке пустой виджет унаследованный от QDialog, бросаю на него любые объекты и объединяю их лейаутом.. создаю программу для теста, подключаю в нее либу делаю кнопку по которой создаеться этот диалог и вызываеться exec(). После создания обьекта при попытке удалить объект класса прога вылетает с ошибкой. Заметил что все работает если закоментировать ui.setupUi(this); но пройдя дебагером по функции setupUi не получаю ошибок. могу попробовать создавать все объекты вручную, но объектов много и удобнее их редактировать через ui и еще хотелось бы понять в чем причина. Прилагаю пример длл и программы в прикреплениях. DLL импортирую так: Код: #ifndef SHAREDDLL_GLOBAL_H Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: Авварон от Апрель 04, 2010, 09:26 класс уи кто создавать будет?
Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: Zmeishe от Апрель 04, 2010, 11:15 Почему так
Код: class SomeDialog : public QDialog а не так Код: class SHAREDDLL_EXPORT SomeDialog : public QDialog ?? Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: IGHOR от Апрель 04, 2010, 18:22 Zmeishe, и так то же самое, конструктор создается и диалог появляется но после закрытия и уничтожения ошибка без описания.
Авварон, а класс уи приватный и генерирует виджеты в конструкторе, и не виден из программы которая подключает длл, разве так нельзя? можете скомпилировать кто-нибудь будет ли у вас ошибка Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: Авварон от Апрель 04, 2010, 19:42 а, уи не по указателю, извиняюсь...
Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: mozgofil от Апрель 18, 2010, 16:27 Zmeishe, и так то же самое, конструктор создается и диалог появляется но после закрытия и уничтожения ошибка без описания. вообще, только последний вариант правильный.Авварон, а класс уи приватный и генерирует виджеты в конструкторе, и не виден из программы которая подключает длл, разве так нельзя? можете скомпилировать кто-нибудь будет ли у вас ошибка пересобери всё и добавь деструктор ЗЫ: а вообще ты не правильно делаешь : нужно 1 солюшн создавать и в него уже добавлять проект длл и тестовое приложение, чтобы их вместе дебажить Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: IGHOR от Апрель 18, 2010, 21:05 вообще, только последний вариант правильный. Это какой последний?ЗЫ: А это попробую, спасибоа вообще ты не правильно делаешь : нужно 1 солюшн создавать и в него уже добавлять проект длл и тестовое приложение, чтобы их вместе дебажить Название: Re: Невозможно удалить класс унаследованный из QDialog определенный в Shared DLL Отправлено: mozgofil от Апрель 19, 2010, 18:44 вообще, только последний вариант правильный. Это какой последний? |