16,471
社区成员
发帖
与我相关
我的任务
分享
//.h文件,.
class DataTest : public CObject
{
public:
DECLARE_SERIAL(DataTest)
public:
void Serialize(CArchive& ar);
int SaveConf();
int ReadConf();
public:
CString m_string;
};
//.CPP文件.
IMPLEMENT_SERIAL(DataTest,CObject,3/*|VERSIONABLE_SCHEMA*/)
void DataTest::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
int nVersion;
CString str;
if (ar.IsStoring())
{// 存
ar<<(CString)_T("保存...567");
}
else
{
nVersion = ar.GetObjectSchema( );
ar>>m_string;
str.Format(_T("%d "),nVersion);
str+=m_string;
AfxMessageBox(str);
}
}
int DataTest::SaveConf()
{//存.,
CFile fFile;
if(0==fFile.Open(_T("DataTest.ini"),CFile::modeCreate|/*CFile::typeText|*/
/*CFile::modeNoTruncate|*/CFile::modeWrite))
return 1;
CArchive ar(&fFile, CArchive::store);
Serialize(ar);
ar.Close();
fFile.Close();
return 0;
}
int DataTest::ReadConf()
{//读,
CFile fFile;
if(0==fFile.Open(_T("DataTest.ini"), CFile::modeRead/*|CFile::typeText*/))
return 1;
CArchive ar(&fFile, CArchive::load);
Serialize(ar);
ar.Close();
fFile.Close();
return 0;
}
///错误截图,GetObjectSchema( ); 读版本号一直是-1;而不是我设置的3
IMPLEMENT_SERIAL(CSchemaObject, CObject, VERSIONABLE_SCHEMA | 1)
void CSchemaObject::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsLoading())
{
int nVersion = ar.GetObjectSchema();
switch(nVersion)
{
case 0:
// read in previous version of
// this object
break;
case 1:
// read in current version of
// this object
break;
default:
// report unknown version of
// this object
break;
}
}
else
{
// Normal storing code goes here
}
}