单文档程序,为什么serialize函数没有被调用?
void CNetManageDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
long size=m_Chinese.GetSize();
ar>>size;
for(int i=0; i<m_Chinese.GetSize(); i++)
{
ar >> n_Chinese[i].strName;
ar >> n_Chinese[i].bSex;
ar >> n_Chinese[i].nAge;
}
// TODO: add storing code here
}
else
{
long nCount;
ar<<nCount;
CPerson person;
m_Chinese.RemoveAll();
for(DWORD index=0;index<nCount;++index)
{
ar >> person.strName;
ar >> person.bSex;
ar >> person.nAge;
m_Chinese.Add(person);
}
// TODO: add loading code here
}
m_Chinese.Serialize (ar);
}

解决方案 »

  1.   

    只要保存,就调用这个函数的
    只是你写错了符号void CNetManageDoc::Serialize(CArchive& ar)
    {
    if (ar.IsStoring())
    {
    long size=m_Chinese.GetSize();
    ar<<size;
    for(int i=0; i<m_Chinese.GetSize(); i++)
    {
    ar << n_Chinese[i].strName;
    ar << n_Chinese[i].bSex;
    ar << n_Chinese[i].nAge;
    }
    // TODO: add storing code here
    }
    else
    {
    long nCount;
    ar>>nCount;
    CPerson person;
    m_Chinese.RemoveAll();
    for(DWORD index=0;index<nCount;++index)
    {
    ar >> person.strName;
    ar >> person.bSex;
    ar >> person.nAge;
    m_Chinese.Add(person);
    }
    // TODO: add loading code here
    }
    m_Chinese.Serialize (ar);
    }
      

  2.   

    void CNetManageDoc::Serialize(CArchive& ar)
    {
    if (ar.IsStoring())
    {
    long size=m_Chinese.GetSize();
    ar<<size;
    for(int i=0; i<m_Chinese.GetSize(); i++)
    {
    ar << n_Chinese[i].strName;
    ar << n_Chinese[i].bSex;
    ar << n_Chinese[i].nAge;
    }
    // TODO: add storing code here
    }
    else
    {
    long nCount;
    ar>>nCount;
    CPerson person;
    m_Chinese.RemoveAll();
    for(DWORD index=0;index<nCount;++index)
    {
    ar >> person.strName;
    ar >> person.bSex;
    ar >> person.nAge;
    m_Chinese.Add(person);
    }
    // TODO: add loading code here
    }
    m_Chinese.Serialize (ar);
    }