crossplatform.ru

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


  Ответ в Непонятные проблемы с vtable
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 9.8.2009, 21:45
  2 Гость_Гость_*, пользуйся тэгом code
AD Дата 9.8.2009, 21:01
 
Цитата
Короче решил проблему так:

Берите код в кавычки /[code]/[//code/] пожалуйста, чтобы удобнее было читать! Заранее спасибо!
Гость Дата 9.8.2009, 20:57
  Короче решил проблему так:
Factory.h
#define FACTORY_INTERFACE \
virtual QObject * newInstance() const = 0; \
virtual QString getFactoryName() const = 0; \
virtual QString getFactoryDesc() const = 0; \


#define FACTORY(CLASS,CLASSNAME,CLASSDESC) \
public: \
QObject * newInstance() const { return const_cast<QObject *>((QObject *)new CLASS()); }; \
QString getFactoryName() const { return QString(CLASSNAME); }; \
QString getFactoryDesc() const { return QString(CLASSDESC); }; \
private:

ViewFactory.h
class ViewFactory {
public:
FACTORY_INTERFACE
};

Q_DECLARE_INTERFACE(ViewFactory,"com.tisadb.ViewFactory\0.1")

tableview.h
class tableviewFactory : public QObject, public ViewFactory
{
Q_OBJECT
Q_INTERFACES(ViewFactory)
public:
FACTORY(tableview,"TableView", "TableView version 0.1")
};

Конечно не то что хотелось бы, если у кого будут еще сообращения - делитесь
Litkevich Yuriy Дата 9.8.2009, 20:44
 
Цитата(Гость_Михаил_* @ 10.8.2009, 0:05) *
но если пытаюсь сделать более универсальный код
по моему разумению, универсальный код не строится на макросах вообще. Нужно искать решение в методах (шаблонах) проектирования.
BRE Дата 9.8.2009, 20:33
 
Цитата(Гость @ 9.8.2009, 21:21) *
Нет, вижу, действительно может moc виноват, и какой может быть выход?

moc пробегается по исходникам и выбирает классы, в которых есть макрос Q_OBJECT, и для этих классов генерируется специальные файлы moc_*.cpp.
Поэтому, для правильной генерации этих файлов необходимо, что бы moc находил в классе макрос Q_OBJECT, т.е.:
class Obj : public QObject
{
    Q_OBJECT
Гость Дата 9.8.2009, 20:25
  Дык это я уже понял
Litkevich Yuriy Дата 9.8.2009, 20:22
 
Цитата(Гость_Гость_* @ 10.8.2009, 0:16) *
moc - обраватыват только xml
moc вообще их читать не умеет, ты путаешь его либо с rcc либо с uic
Гость Дата 9.8.2009, 20:21
  Нет, вижу, действительно может moc виноват, и какой может быть выход?
Гость Дата 9.8.2009, 20:16
  Тем более судя по исходникам эту подстановку делает не moc а препроцессор GCC, а moc - обраватыват только xml-ки и подставляет из вывод в соответствующие файлы
Гость Дата 9.8.2009, 20:13
  И какой может быть выход?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 2:23