• 6504阅读
  • 3回复

Q_DECLARE_METATYPE 用法报错 [复制链接]

上一主题 下一主题
离线aqcqqq
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-29
Random.h
class Random
{
                     Random & operator =(const Random &);
    Random(const Random &);
........
};
Q_DECLARE_METATYPE(Random)

Random .cpp
Random & Random::operator =(const Random & r)
    {
        return *this;
    }
Random::Random(const Random & r): MBIG(0x7fffffff),MSEED(0x9a4ec86),MZ(0)
    {
    
    }
...............................

main()
{
Random r;
Random r1;
QVariant var;
var.setValue(r);
r1 = var.value<Random>();
}
...................

错误    5    error C2371: “QtValidLicenseForCoreModule”: 重定义;不同的基类型    d:\qt\4.5.3\4.5.3\qt\src\corelib\tools\qchar.h    51    aaab
离线aqcqqq

只看该作者 1楼 发表于: 2010-01-29
是不是构造函数有问题? 请高手指点,在线等待!
离线yangfanxing
只看该作者 2楼 发表于: 2010-01-29
  1. Random & operator =(const Random &);
  2. Random(const Random &);

这是什么啊?没有返回值么?
纯好奇下,顺便帮顶~
PHPWind好恶心。。。不想看这种界面。。。
离线aqcqqq

只看该作者 3楼 发表于: 2010-01-29
问题解决 ,Q_DECLARE_METATYPE 好像不可以放在被封装到QVarant 的类里,我把它放在Random.h 里了。
应该放在全局初始化函数里我想。
快速回复
限100 字节
 
上一个 下一个