首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

奇怪的序列化有关问题

2012-02-29 
奇怪的序列化问题 我的一个基类CVSPageShape类,再有一个继承于此的类CNestPageShape类2个类都有自己的序列

奇怪的序列化问题

我的一个基类   CVSPageShape类,再有一个继承于此的类CNestPageShape类

2个类都有自己的序列化函数,

奇怪的是在保存时程序自CNestPageShape类中进入,而打开时却从CVSPageShape中走

为什么?


//CNestPageShape类的序列化函数
void   CNestPageShape::Serialize(CArchive&   ar)
{
CVSPageShape::Serialize(ar);
AfxMessageBox( "NestPageShape ");
if(ar.IsStoring())
{
//FODO:Add   your   own   code   here.
m_strStatistic   =   " ";
ar   < <   m_strStatistic;
}
else
{
//FODO:Add   your   own   code   here
ar   > >   m_strStatistic;
}
}

//CVSPageShape的序列化函数
void   CVSPageShape::Serialize(CArchive&   ar)
{
CVSDrawShape::Serialize(ar);
if(ar.IsStoring())
{
//FODO:Add   your   own   code   here.

//   Save   shapes
ar   < <   m_listShape.GetCount();

CVSDrawShape   *pShape;
POSITION   posx   =   m_listShape.GetHeadPosition();
while   (posx)
{
pShape   =   m_listShape.GetNext(posx);
ar   < <   (CVSDrawShape*)pShape;
}
}
else
{
//FODO:Add   your   own   code   here.
//   Read   Shapes
int   nCountx;
ar   > >   nCountx;
CVSDrawShape*   pShape;
for   (int   i1=0;   i1   <   nCountx;   i1++)
{
ar   > >   pShape;
pShape-> AddRef();
pShape-> UpdateComp();
m_listShape.AddTail(pShape);

pShape-> Release();
}
}
}

[解决办法]
CNestPageShape没有保存什么呀,只保存了一个空字符,大部分保存都在CVSPageShape。
打开保存的文件时可以看到里面保存的是CVSPageShape不足为奇。

热点排行