我要对我的编写的类MyClass进行序列化操作,
在基于Dialog的界面中,我声明了CDocument的派生类进行Serialize操作,
能够写入数据,但是读取时报告格式错误;如果把类MyClass放到以向导方式生成的SDI框架的Application中,就可以进行正确的写入和读取。想知道问题出在什么地方?
在基于Dialog的界面中,我声明了CDocument的派生类进行Serialize操作,
能够写入数据,但是读取时报告格式错误;如果把类MyClass放到以向导方式生成的SDI框架的Application中,就可以进行正确的写入和读取。想知道问题出在什么地方?
CFileDialog fileDlg(false,NULL,rouPath+fileName+".RUT",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"*.RUT|*.RUT|*.TXT|*.TXT|",NULL);
fileDlg.m_ofn.lpstrTitle = "航线导出";
if(fileDlg.DoModal()==IDOK)
{
CString fileName = fileDlg.GetFileName();
CFile file;
if(file.Open(fileName,CFile::modeCreate|CFile::modeWrite))
{
CString ext = fileDlg.GetFileExt();
if(ext == "RUT")
{
CArchive ar(&file,CArchive::store);
m_pActRoute->Serialize(ar);//m_pActRoute类对象从CObject类派生,支持序列化。在类中已经定义了序列化函数
ar.Close();
}
else if(ext == "TXT" || ext == "txt")
{
m_pActRoute->WriteToTextFile(&file);
}
file.Close();
return;
}
}
return;
}
只是我把它们封装进了DLL中。
下午我尝试了把它们取出来,不进行封装,
就能正常地存取,
是否和封装有关系