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

请参见

参考

CArchive选件类

层次结构图

CArchive::Close

CArchive::Flush

CFile::Close