Название: Что можно почитать по рефлексии в Qt? Отправлено: Я.К. от Июль 06, 2009, 17:51 Собственно, сабж. Я знаю, что в Qt поддерживается рефлексия, но как здесь ею пользоваться и где ее брать?
Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: Rcus от Июль 06, 2009, 17:55 http://doc.trolltech.com/4.5/metaobjects.html
И далее по ссылкам. Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: Я.К. от Июль 07, 2009, 07:32 Я открым документацию, нашел там статью о Q_PROPERTY и попытался скомпилировать пример. Я добавил реализацию конструктора с деструктором, но и это не помогло
Код: #include <QtCore> Компилятор ругается так: Цитировать 1>main.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyClass::metaObject(void)const " (?metaObject@MyClass@@UBEPBUQMetaObject@@XZ) Как это исправить?1>main.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyClass::qt_metacast(char const *)" (?qt_metacast@MyClass@@UAEPAXPBD@Z) 1>main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall MyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z) Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: BRE от Июль 07, 2009, 07:46 Как это исправить? Добавь в конец файла:#include "main.moc" Вместо "main" нужно поставить имя файла исходника без расширения. Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: Я.К. от Июль 07, 2009, 08:13 Как это исправить? Добавь в конец файла:#include "main.moc" Вместо "main" нужно поставить имя файла исходника без расширения. Опять не выходит! Теперь ругается на то, что ему не хватает функций setPriority и priority()! Код: #include <QtCore> Цитировать 1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall MyClass::setPriority(enum MyClass::Priority)" (?setPriority@MyClass@@QAEXW4Priority@1@@Z) referenced in function "public: virtual int __thiscall MyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 1>main.obj : error LNK2019: unresolved external symbol "public: enum MyClass::Priority __thiscall MyClass::priority(void)const " (?priority@MyClass@@QBE?AW4Priority@1@XZ) referenced in function "public: virtual int __thiscall MyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z) 1>C:\Documents and Settings\user\Мои документы\Visual Studio 2005\Projects\Reflections\Debug\Reflections.exe : fatal error LNK1120: 2 unresolved externals 1 Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: Rcus от Июль 07, 2009, 08:19 Ну и правильно ругается, метаобъектная модель не заменяет собой объектную модель плюсов. И код все-таки придется писать
Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: Я.К. от Июль 07, 2009, 08:36 Ну и правильно ругается, метаобъектная модель не заменяет собой объектную модель плюсов. И код все-таки придется писать Хмм... А как это вообще-то написать правильно? Название: Re: Что можно почитать по рефлексии в Qt? Отправлено: BRE от Июль 07, 2009, 09:04 Код
|