CArchive::CArchive
构造 CArchive 对象并指定它是用于加载或存储对象是使用。
CArchive(
CFile* pFile,
UINT nMode,
int nBufSize = 4096,
void* lpBuf = NULL
);
参数
pFile
为了使持久性数据的最终源或目标的 CFile 对象的指针。nMode
指定的标志对象是否将填充或存储到存档。 nMode 参数必须具有下列值之一:CArchive::load 从存档加载数据。 需要 CFile 仅读取权限。
CArchive::store 将数据保存到存档。 需要 CFile 写权限。
当存档析构函数调用时,CArchive::bNoFlushOnDelete 防止存档自动调用 Flush。 如果设置此标志,您负责显式调用 Close,在调用析构函数之前。 如果不,数据将损坏。
nBufSize
指定文件内部缓冲区的大小的整数,以字节为单位)。 请注意默认缓冲区大小为4,096字节。 如果您定期存档大型对象,您将提高性能,如果您使用的是文件缓冲区大小的多个的一个更大的缓冲区大小。lpBuf
该范围 nBufSize用户提供的缓冲区的可选指针。 如果未指定此参数,存档从本地堆分配缓冲区并释放它,当销毁对象时。 存档不释放用户提供的缓冲区。
备注
在创建存档后,不能更改此规范。
您不能使用 CFile 操作修改文件的状态,直到您关闭了存档。 任何此类操作将损坏存档的完整性。 在序列化时在+任何+时间可以访问文件指针的位置。获取存档文件对象从 GetFile 成员函数然后使用 CFile::GetPosition 功能。 您应在获取文件指针的位置之前调用 CArchive::Flush。
示例
CFile file;
TCHAR szBuf[512];
if( !file.Open(_T("CArchive__test__file.txt"),
CFile::modeCreate | CFile::modeWrite))
{
#ifdef _DEBUG
AFXDUMP(_T("Unable to open file\n"));
exit(1);
#endif
}
CArchive ar(&file, CArchive::store, 512, szBuf);
要求
Header: afx.h