集合如何序列化,比如一个Point的vector? 还用Doc类的Serialize(CArchive& ar)吗?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CDrawDoc::Serialize(CArchive& ar){ if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } m_LineList.Serialize(ar); m_EllipseList.Serialize(ar); m_RectangleList.Serialize(ar);}******************************************************void CEllipse::Serialize(CArchive& ar){ if (ar.IsStoring()) { ar << (WORD)m_nPenWidth; ar << (DWORD)m_nPenColor; m_EllpointArray.Serialize(ar); // TODO: add storing code here } else { // TODO: add loading code here WORD w; DWORD y; ar >> w; //从文件中读取数据类型和CObjects m_nPenWidth = w; ar >> y; m_nPenColor = y; m_EllpointArray.Serialize(ar); }}**********************************************************************void CLine::Serialize(CArchive& ar){ if (ar.IsStoring()) { ar << (WORD)m_nPenWidth; ar << (DWORD)m_nPenColor; m_pointArray.Serialize(ar); // TODO: add storing code here } else { // TODO: add loading code here WORD w; DWORD y; ar >> w; //从文件中读取数据类型和CObjects m_nPenWidth = w; ar >> y; m_nPenColor = y; m_pointArray.Serialize(ar); }}***********************************************************void CRectangle::Serialize(CArchive& ar){ if (ar.IsStoring()) { ar << (WORD)m_nPenWidth; ar << (DWORD)m_nPenColor; m_RectpointArray.Serialize(ar); // TODO: add storing code here } else { // TODO: add loading code here WORD w; DWORD y; ar >> w; //从文件中读取数据类型和CObjects m_nPenWidth = w; ar >> y; m_nPenColor = y; m_RectpointArray.Serialize(ar); }} 上面是我做的一个画图程序。可以看的出来,第一段是一个固定格式。m_LineList.Serialize(ar);m_EllipseList.Serialize(ar);m_RectangleList.Serialize(ar);3句是我自己加的。下面的是我自己定义的每个类中存储的每一个图形的信息。m_nPenWidth是UINT类型的变量。m_nPenColor是DWORD(COLORREF)类型。 error C2248: 'Serialize' : cannot access public member declared in class 'CObject' f:\tool\microsoft visual studio\vc98\mfc\include\afx.h(704) : see declaration of 'Serialize'这是什么错误,是不是能够serialize的必须继承自CObject类? 如果在自己定义的类中使用serialize函数,必需在头文件中加入声名DECLARE_SERIAL(类名)同时在CPP文件中加入IMPLEMENT_SERIAL(类名, CObject, 1)具体细节看MSDN 求教一个简单的mfc问题,懂得请进,在线等。 #if DBG 的 DBG 是VS210 里 的哪个选项 请问下关于后台模拟鼠标键盘的思路 谁有windows泄露的源代码?给一个连接地址,谢谢! 什么是野指针?这个能称为野指针吗? 一个小问题,关于程序的VIEW应该继承什么 在文档类中的函数可以实现在视窗中画图吗??急 基于对话框的位图显示问题 在vc中怎样读取float型的数据文件? 请教一下在VC6.0中编译IDL遇到的难题!!急... 如何用VC读取.txt文件中的数据??? 谁有VC++输入法编程经验
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
m_LineList.Serialize(ar);
m_EllipseList.Serialize(ar);
m_RectangleList.Serialize(ar);
}
******************************************************
void CEllipse::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << (WORD)m_nPenWidth;
ar << (DWORD)m_nPenColor;
m_EllpointArray.Serialize(ar);
// TODO: add storing code here
}
else
{
// TODO: add loading code here
WORD w;
DWORD y;
ar >> w; //从文件中读取数据类型和CObjects
m_nPenWidth = w;
ar >> y;
m_nPenColor = y;
m_EllpointArray.Serialize(ar);
}
}
**********************************************************************
void CLine::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << (WORD)m_nPenWidth;
ar << (DWORD)m_nPenColor;
m_pointArray.Serialize(ar);
// TODO: add storing code here
}
else
{
// TODO: add loading code here
WORD w;
DWORD y;
ar >> w; //从文件中读取数据类型和CObjects
m_nPenWidth = w;
ar >> y;
m_nPenColor = y;
m_pointArray.Serialize(ar);
}
}
***********************************************************
void CRectangle::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << (WORD)m_nPenWidth;
ar << (DWORD)m_nPenColor;
m_RectpointArray.Serialize(ar);
// TODO: add storing code here
}
else
{
// TODO: add loading code here
WORD w;
DWORD y;
ar >> w; //从文件中读取数据类型和CObjects
m_nPenWidth = w;
ar >> y;
m_nPenColor = y;
m_RectpointArray.Serialize(ar);
}
}
可以看的出来,第一段是一个固定格式。m_LineList.Serialize(ar);m_EllipseList.Serialize(ar);
m_RectangleList.Serialize(ar);3句是我自己加的。
下面的是我自己定义的每个类中存储的每一个图形的信息。m_nPenWidth是UINT类型的变量。m_nPenColor是DWORD(COLORREF)类型。
f:\tool\microsoft visual studio\vc98\mfc\include\afx.h(704) : see declaration of 'Serialize'
这是什么错误,是不是能够serialize的必须继承自CObject类?
同时在CPP文件中加入IMPLEMENT_SERIAL(类名, CObject, 1)
具体细节看MSDN