急,在线等!关于串行化的问题! 我建了个CObject的派生类(CTestList),如何把一个文件中的内容读入一个CObList中然后再把它一个一个的传给CTestList呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我建了个CObject的派生类(CTestList)并重载了Serialize(),如何把一个文件中的内容读入一个CObList中然后再把它一个一个的传给CTestList呢? 要满足以下条件1. 有构造和析构2. DECLARE_SERIAL / IMPLEMENT_SERIAL 巨集3. 从CObject 派生4. 重载 Serialize()有上面的条件,你在DOC下的Serialize(),里面就可以用ar<<m_youObject和ar>>m_youObject 来实现串行化了! 我已经实现了楼上这位老兄所说的条件.我是这样定义的:CObList myObList;CMyOb myOb;//CMyOb中有成员变量m_szOne,m_szTwo;CFile myFile;myFile.Open("c:\\myfile.dat",CFile::modeRead);CArchive ar(&myFile,CArchive::load);请问如何把myfile.dat中的内容传给myObList,再由myObList一个一个的传给myOb,以使m_szOne,m_szTwo得到值呢? 直接用ar<<m_szOne<<m_szTwoar>>m_szOne>>m_szTwo就可以,没必要用CObList myObList。 qdjiang兄:文件中有多个不同的m_szOne,m_szTwo值,即多个CMyOb实例,我只是想把它们得出逐个与当前的CMyOb对象的中的m_szOne,m_szTwo对比,以判断当前值是否存在于文件中,就象比对用户名和密码一样,这样我该如何逐个比校呢? 看看这个:CArchive arR(&f, CArchive::load);CWords curword;typedef CTypedPtrList<CObList, CWords*> CWordsList;CWordsList list;list.Serialize(arR);void CWords::Serialize(CArchive& ar){ CObject::Serialize( ar ); if(ar.IsStoring()) { ar << m_strWords; ar << m_strType; ar << m_strCh; ar << m_strPh; } else { ar >> m_strWords; ar >> m_strType; ar >> m_strCh; ar >> m_strPh; }} 再用上面的list做一个循环就行了。 win7 32位系统下,希望在系统启动时,自动加在加在自己编的一个dll程序,用winlogon好像不行?有没有比较好的可行的方法? 弱弱地问个问题 对QQ程序挂钩API 请大家帮帮忙 对链表的写文件操作 关于套接字异步I/O的问题 如何在移动一个Docking Bar(如CDialogBar或CToolBar)使其显示? 困扰我一个月的问题仍旧没有解决,哪位给我解决绝对给800分,君子一言驷马难追!!!拜托 截取对话框的密码 SetMapMode(...) 如何打包vector<int> CComboBox已经设置为auto hscroll,为什么不出现水平滚动条?
1. 有构造和析构
2. DECLARE_SERIAL / IMPLEMENT_SERIAL 巨集
3. 从CObject 派生
4. 重载 Serialize()
有上面的条件,你在DOC下的Serialize(),里面就可以用ar<<m_youObject
和ar>>m_youObject 来实现串行化了!
我是这样定义的:
CObList myObList;
CMyOb myOb;//CMyOb中有成员变量m_szOne,m_szTwo;
CFile myFile;
myFile.Open("c:\\myfile.dat",CFile::modeRead);
CArchive ar(&myFile,CArchive::load);
请问如何把myfile.dat中的内容传给myObList,再由myObList一个一个的传给myOb,以使m_szOne,m_szTwo得到值呢?
ar<<m_szOne<<m_szTwoar>>m_szOne>>m_szTwo
就可以,没必要用CObList myObList。
文件中有多个不同的m_szOne,m_szTwo值,即多个CMyOb实例,我只是想把它们得出逐个与当前的CMyOb对象的中的m_szOne,m_szTwo对比,以判断当前值是否存在于文件中,就象比对用户名和密码一样,这样我该如何逐个比校呢?
CWords curword;
typedef CTypedPtrList<CObList, CWords*> CWordsList;
CWordsList list;
list.Serialize(arR);void CWords::Serialize(CArchive& ar)
{
CObject::Serialize( ar );
if(ar.IsStoring())
{
ar << m_strWords;
ar << m_strType;
ar << m_strCh;
ar << m_strPh;
}
else
{
ar >> m_strWords;
ar >> m_strType;
ar >> m_strCh;
ar >> m_strPh;
}
}