class CSoftParam:public CObject
{
DECLARE_SERIAL(CSoftParam)
public:
CSoftParam();
~CSoftParam();
public:
CString m_strRecPath;
DWORD m_filemask;
DWORD m_version;
void Serialize(CArchive &ar);
void SaveData(const char *pstrfile= NULL);
void LoadData(const char *pstrfile = NULL);
private:
void DefaultParam();
void LoadVer0(CArchive&ar);
};
cpp
IMPLEMENT_SERIAL(CSoftParam,CObject,0)
CSoftParam::CSoftParam()
{
DefaultParam();
}
void CSoftParam::DefaultParam()
{
m_filemask = 0x00000001;
m_version = 0x00000001;
m_strRecPath.Forma("sdfsdfsdfds");
}
CSoftParam::~CSoftParam()
{
}
void CSoftParam::Serialize(CArchive& ar)
{
if(ar.IsStoring())
{
m_version = 0x00000001;
ar<< m_filemask << m_version
<<m_strRecPath;
}
else
{
ar>> m_filemask >> m_version
switch(m_version)
{
case 0x00000001:
LoadVer0(ar);
break;
default:
LoadVer0(ar);
break;
}
}
}
void CSoftParam::SaveData(const char * pstrfile)
{
CFile DataFile;
CString filename;
if(pstrfile == NULL)
{
filename = APPDIR;
filename += "\\";
filename += SOFTPARAM_FILENAME;
}
else
{
filename = pstrfile;
}
try
{
DataFile.Open(filename,CFile::modeCreate | CFile::modeReadWrite | CFile::shareDenyNonem,NULL);
CArchive ar(&DataFile,CArchive::store);
Serialize(ar);
}
catch(...)
{
}
DataFile.Close();
}
void CSoftParam::LoadData(const char * pstrfile)
{
CFile DataFile;
CString filename;
DWORD filemask = 0;
if(pstrfile == NULL)
{
filename = APPDIR;
filename += "\\";
filename += SOFTPARAM_FILENAME:
}
else
{
filename = pstrFile;
}
try
{
if(!DataFile.Open(filename,CFile::modeReadWrite | CFile::shareDenyNone,NULL))
{
goto err_exit;
}
if(DataFile.Read(&filemask,sizeof(DWORD))!= sizeof(DWORD))
{
DataFile.Close();
goto err_exit;
}
DataFile.Seek(0,SEEK_SET);
if(filemask != CFGFILEMASK)
{
DataFile.Close();
goto err_exit;
}
CArchive ar (&DataFile,CArchive::load);
Serialize(ar);
}
catch(...)
{
DataFile.Close();
goto err_exit;
}
DataFile.Close();
return ;
err_exit:
DefaultParam();
SaveData();
}
void CSoftParam::LoadVer0(CArchive&ar)
{
ar>>m_strRecPath;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。