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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt plugin передача класса  (Прочитано 156 раз)
ti0
Новичок

Offline Offline

Сообщений: 33


Просмотр профиля
« : Декабрь 02, 2017, 01:09 »

Реализую передачу в плагине стороннего класса. Интерфейс:
Код:
class TaskInterface
{
public:
    virtual ~TaskInterface() {}
    virtual TestA* factory() const = 0;
};

Плагин:
Код:
class Plugin : public QObject, TaskInterface
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "com.R.TaskInterface/1.0" FILE "plugin.json")
    Q_INTERFACES(TaskInterface)

public:
    TestA* factory() const
    {
        return new TestA;
    }

};
Все работает, плагин грузится.

Теперь мне нужно переопределить класс TestA в плагине. Для теста создал класс TestB, который наследуется от TestA. В TestB ничего не менял и не добавлял. Приинклюдил в хедеру плагина, и больше ничего в хедере не менял:

Код:
#include "testb.h"

class Plugin : public QObject, TaskInterface
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "com.R.TaskInterface/1.0" FILE "plugin.json")
    Q_INTERFACES(TaskInterface)

public:
    TestA* factory() const
    {
        return new TestA;
    }

};

Плагин не грузится ... с ошибкой "undefined symbol: _ZN5TestA16staticMetaObjectE)". В идеале я хочу в методе TestA* factory() const
создать экземпляр класса TestB и передать его, но даже его обьявление не работает. WFT?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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