我定义了一个画特定图形的类,因为此图形中包括许多数据量,所以我把这些数据第一在一个结构体当中
struct RECORD
{
UINT serial; // serial number
double EXLENGTH,EXWIDTH;
double INLENGTH,INWIDTH;
Position pacOrigin; // the practical center
double m_Offset,m_Radian;
double cenExcurx,cenExcury;
double fibExcurx,fibExcury;
};
在类的存储时,我想用序列化函数serialize(CArchive& ar)
但不知道结构体应该如何实现序列化?
或者有更好的办法存储此结构体.
谢谢.
struct RECORD
{
UINT serial; // serial number
double EXLENGTH,EXWIDTH;
double INLENGTH,INWIDTH;
Position pacOrigin; // the practical center
double m_Offset,m_Radian;
double cenExcurx,cenExcury;
double fibExcurx,fibExcury;
};
在类的存储时,我想用序列化函数serialize(CArchive& ar)
但不知道结构体应该如何实现序列化?
或者有更好的办法存储此结构体.
谢谢.
使用 DECLARE_SERIAL
IMPLEMENT_SERIAL 这对宏并重载Serialize函数
具体可参考MSDN相关内容
void CCreateMOne::Serialize (CArchive &ar)
{
if(ar.IsStoring())
ar << record;
else
ar >> record;
}
我这样定义后, 程序出错:
C:\my project\SDI VFOS\CreateMOne.cpp(202) : error C2678: binary '<<' : no operator defined which takes a left-hand operand of type 'class CArchive' (or there is no acceptable conversion)
C:\my project\SDI VFOS\CreateMOne.cpp(204) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'struct RECORD' (or there is no acceptable conversion)
不明白是什么原因.
{
if(ar.IsStoring())
{
ar << record.serial;
ar << record.EXLENGTH;
....
}
else
ar << record.serial;
ar << record.EXLENGTH;
....
}