파일로/파일에서 데이터 Serialize

지속성의 기본 개념은 개체가 해당 멤버 변수의 값으로 표시된 현재 상태를 영구 스토리지에 쓸 수 있어야 한다는 것입니다. 나중에 영구 스토리지에서 개체의 상태를 읽거나 "역직렬화"하여 개체를 다시 만들 수 있습니다. 여기서 핵심은 개체 자체가 자체 상태를 읽고 쓰는 데 책임이 있다는 것입니다. 따라서 클래스가 영구적이려면 기본 serialization 작업을 구현해야 합니다.

프레임워크는 파일 메뉴의 다른 이름으로 저장 및 저장 명령에 대한 응답으로 문서를 디스크 파일에 저장하고 열기 명령에 대한 응답으로 디스크 파일에서 문서를 로드하기 위한 기본 구현을 제공합니다. 작업이 거의 없으면 파일에서 데이터를 쓰고 읽는 문서의 기능을 구현할 수 있습니다. 기본 작업은 문서 클래스에서 Serialize 멤버 함수를 재정의하는 것입니다.

MFC 애플리케이션 마법사는 사용자가 만든 문서 클래스에 멤버 함수 Serialize 의 스켈레탈 재정의 CDocument 를 배치합니다. 애플리케이션의 멤버 변수를 구현한 후에는 파일에 연결된 "보관 개체"에 Serialize 데이터를 보내는 코드로 재정의를 채울 수 있습니다. CArchive 개체는 C++ iostream 라이브러리의 cin 및 cout 입력/출력 개체와 유사합니다. 그러나 CArchive 서식이 지정된 텍스트가 아닌 이진 형식을 작성하고 읽습니다.

다음에 대해 자세히 알고 싶은 사항

Serialization에서 문서의 역할

프레임워크는 구현된 경우 문서의 Serialize 멤버 함수를 호출하여 파일 메뉴의 열기, 저장 및 다른 이름으로 저장 명령에 자동으로 응답합니다. 예를 들어 ID_FILE_OPEN 명령은 애플리케이션 개체에서 처리기 함수를 호출합니다. 이 프로세스 중에 사용자는 파일 열기 대화 상자를 보고 응답하며 프레임워크는 사용자가 선택한 파일 이름을 가져옵니다. 프레임워크는 문서에 데이터를 로드하기 위해 설정된 개체를 만들고 CArchive 보관 Serialize파일을 전달합니다. 프레임워크에서 파일을 이미 열었습니다. 문서의 Serialize 멤버 함수에 있는 코드는 보관 파일을 통해 데이터를 읽고 필요에 따라 데이터 개체를 다시 구성합니다. serialization에 대한 자세한 내용은 Serialization 문서를 참조하세요.

Serialization에서 데이터의 역할

일반적으로 클래스 형식 데이터는 자체적으로 직렬화할 수 있어야 합니다. 즉, 개체를 보관 파일에 전달할 때 개체는 보관 파일에 자신을 쓰는 방법과 보관 파일에서 자신을 읽는 방법을 알아야 합니다. MFC는 이러한 방식으로 클래스를 직렬화할 수 있도록 지원합니다. 데이터 형식을 정의하도록 클래스를 디자인하고 해당 형식의 데이터를 직렬화하려는 경우 serialization을 위해 디자인합니다.

참고 항목

문서 사용