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 архива.Если установлен этот пометить, ответственность за явно вызывать Закрыть, прежде чем вызывать деструктор.Если этого не сделать, то данные будут повреждены.
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