我用Serialize存取数据,每回存的时候都能存上,但是取的时候总是
警告我“不能对一个位命名的文件存取”,我写的代码大致是这样的,
稍微简陋一些,就是这个意思:
void Write::ReadFile()
{         CDocument *pDoc = GetDocument();
CString filepath = "f:\\xixixi\\xixixi.c";
CFile file;
file.Open(filepath,
 CFile::modeRead|CFile::modeWrite,
          NULL ); CArchive ar(&file,CArchive::load,512,NULL);
         ar.ReadObject(pDoc);}我对Serialize还不熟,我想问一下,这个警告一般在什么情况下能出现?
具体是什么意思,那位大虾对流熟悉的请赐教,最好能说说对Serialize这
个方法的是用心得,我一定不吝惜我的银子!谢谢各位了!

解决方案 »

  1.   

    ReadObject(&obj),obj要是一个可存取的对象(即从CObject中派生的),可以使用RUNTIME_CLASS来取得,如RUNTIME_CLASS(CMapStringToString),
    而这个对象和你所要读取的文件所存储的对象是同一类型,即和用WriteObject()写入的对象是同一类型,ReadObject()返回一个指向读出内容后的对象,即文件的内容。不知说清楚没有!对于Serialize这个函数的心得看候捷的《深入浅出》就会有不错的收获。这样先了!