다음을 통해 공유


CArchive 개체를 만드는 두 가지 방법

만드는 데는 두 가지는 CArchive 개체:

  • 암시적 프레임 워크를 통해 CArchive 개체 만들기

  • 명시적 CArchive 개체 만들기

암시적 프레임 워크를 통해 CArchive 개체 만들기

가장 일반적인, 쉬운 방법은 프레임 워크를 만들 수 있도록 하는 것은 CArchive 문서를 저장, 다른 이름으로 저장 및 파일 메뉴의 열기 명령 대신 개체.

사용자가 응용 프로그램의 파일 메뉴에서 다른 이름으로 저장 명령을 발급 하는 경우 프레임 워크 역할은 다음과 같습니다.

  1. 제시는 으로 저장 대화 상자 및 사용자 로부터 파일 이름을 가져옵니다.

  2. 사용자가 파일을 여는 CFile 개체.

  3. 만들고 있는 CArchive 이 가리키는 개체 CFile 개체.만들기는 CArchive 개체에서 "저장" 모드를 설정 하는 프레임 워크 (쓰기, serialize) "로드" 대조적으로 (읽기, deserialize).

  4. 호출의 Serialize 에 정의 된 함수를 CDocument-파생 클래스에 대 한 참조를 전달 합니다.의 CArchive 개체.

문서를 Serialize 함수에 다음 데이터를 씁니다의 CArchive 개체, 잠시 후에 설명 된 대로.반환 시를 Serialize 함수를 프레임 워크를 소멸의 CArchive 개체 다음의 CFile 개체.

따라서 프레임 워크를 만들 수 있는 경우는 CArchive 개체를 문서에 있는 모든 문서의 구현 Serialize 함수는 기록 하 고 보관 파일에서 읽습니다.구현도 Serialize 에 대 한 CObject-파생 개체는 문서의 Serialize 함수에 serialize 직접 또는 간접적으로.

명시적 CArchive 개체 만들기

프레임 워크를 통해 문서를 serialize 하는 것 외에도 있을 수 있습니다 필요한 다른 경우가 있는 CArchive 개체입니다.예를 들어, 표현으로 클립보드에서 데이터를 serialize 하는 데 사용할 수도 있습니다는 CSharedFile 개체입니다.나는 다른 프레임 워크에서 제공 하는 파일을 저장 하는 사용자 인터페이스를 사용 하는 것이 좋습니다.이 경우 명시적으로 만들 수 있는 CArchive 개체입니다.프레임 워크에서와 같은 방법으로 다음 절차를 사용 하 여 이렇게 합니다.

명시적으로 CArchive 개체를 만들려면

  1. 생성 된 CFile 개체 또는 개체에서 파생 CFile.

  2. 전달의 CFile 개체의 생성자에 대 한 CArchive, 다음 예제와 같이:

    CFile theFile;
    theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite);
    CArchive archive(&theFile, CArchive::store);
    

    두 번째 인수는 CArchive 생성자에 아카이브를 저장 또는 로드 하거나 데이터 파일에서에 대 한 사용 여부를 지정 하는 열거형된 값입니다.Serialize 개체의 함수를 호출 하 여이 상태 검사는 IsStoring 보관 개체에 대 한 함수입니다.

저장 하거나 또는에서 데이터 로드 작업을 완료 하는 경우는 CArchive 개체을 닫습니다.하지만 CArchive (및 CFile) 개체를 보관 및 파일 자동으로 닫습니다, 쉽게 오류를 복구할 수 있기 때문에 명시적으로 이렇게 하는 것이 좋습니다.오류 처리에 대 한 자세한 내용은 예외: 예외를 삭제 하 고 Catching.

CArchive 개체를 닫습니다.

  • 닫는 방법을 다음 예제에서 CArchive 개체:

    archive.Close();
    theFile.Close();
    

참고 항목

개념

Serialization: 개체를 Serialize합니다.