编写串行化类的问题
「已注销」 2015-05-12 05:02:35 我建立了一个工程叫demo04
首先我 新建一个类
第一步
class CSerialClass : public CObject
{
public:
CSerialClass();
DECLARE_SERIAL(CSerialClass) //添加序列化宏
public:
int m_Data;
CString m_Text;
public:
public:
virtual void Serialize(CArchive& ar);
public:
virtual ~CSerialClass();
};
第二步
CSerialClass::CSerialClass()
{
}
CSerialClass::~CSerialClass()
{
}
IMPLEMENT_SERIAL( CSerialClass, CObject, 1 ) //添加序列化宏
void CSerialClass::Serialize(CArchive& ar) //改写Serialize方法
{
if (ar.IsStoring())
{
ar<<m_Data<<m_Text;
}
else
{
ar>>m_Data>>m_Text;
}
}
第三步我加了两个按钮 设置了两个单机事件
#include "SerialClass.h"
void CSerializeDlg::OnOK() //保存对象
{
CSerialClass serial;
CFile file("SerialClass.dat",CFile::modeCreate|CFile::modeWrite);
CArchive ar(&file,CArchive::store);
serial.m_Data = 2015;
serial.m_Text = "我马上就毕业了";
serial.Serialize(ar);
}
void CSerializeDlg::OnButton1() //加载对象
{
CSerialClass serial;
CFile file("SerialClass.dat",CFile::modeRead);
CArchive ar(&file,CArchive::load);
serial.Serialize(ar);
MessageBox(serial.m_Text,"提示");
}
这个时候我发现运行是能运行 保存没什么问题,但是为什么一加载对象就会 出现问题