Visual c++ 对存档和取消存档使用相同的CArchive对象

Visual c++ 对存档和取消存档使用相同的CArchive对象,visual-c++,serialization,reusability,Visual C++,Serialization,Reusability,以下是示例代码: CFile serFile; serFile.Open(_T("Person.ser"), CFile::modeCreate | CFile::modeWrite); CArchive writer(&serFile, CArchive::store); me.Serialize(writer); writer.Close(); serFile.Close(); serFile.Open(_T("Person.ser"), CFile::modeRead);

以下是示例代码:

CFile serFile;
serFile.Open(_T("Person.ser"), CFile::modeCreate | CFile::modeWrite);

CArchive writer(&serFile, CArchive::store);

me.Serialize(writer);

writer.Close();
serFile.Close();

serFile.Open(_T("Person.ser"), CFile::modeRead);

CArchive reader(&serFile, CArchive::load);
CPerson clone;
clone.Serialize(reader);

reader.Close();
serFile.Close();
在这里,我有一位作家,他将我的作品归档。然后,我使用另一个CArchive对象读取器将其取消归档。是否可以重新构造或设置writer的任何属性,使其成为读取器,而不是声明另一个CArchive对象读取器


谢谢。

我想是卡奇夫*cReadAndWrite指针
可以使用,您可以将其删除并重新使用。但我不确定这是否可行。

您是否检查过是否可以编辑此属性CArchive::load;读者创造之后。我的意思是,在创建对象之后,没有一个settype或setattribute函数可以让您更改它。CArchive::load是一个枚举,我们在构造CArchive对象时使用它。枚举模式{store=0,load=1,bNoFlushOnDelete=2,bNoByteSwap=4};