다음을 통해 공유


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);

요구 사항

헤더: afx.h

참고 항목

참조

CArchive 클래스

계층 구조 차트

CArchive::Close

CArchive::Flush

CFile::Close