스트림 IO/기타

직렬화 - MFC

jjryu 2008. 12. 7. 18:40
CArchive
CMemFile, CSocketFile 클래스와 연결될 수 있다
CObject를 상속한 객체의 .Serialize()에 인자로 넘겨주면 해당 객체가 스스로(?) 직렬화한다.

CArchive()
CArchive::store|CArchive::load
.Read()
.Write()
.ReadString()
.WriteString()
.IsStoring()

.<<()
.>>()

<- CFile
<- CMemFile
<- CSocketFile

사용자 정의 클래스 객체를 직렬화할 수 있는 조건
1. CObject 클래스로부터 직접 또는 간접적으로 상속을 받는다.
.Serialize()를 재정의
처음에 부모의 .Serialize 함수도 호출
2. 생성자 함수를 만든다. // 객체 초기화
3. 헤더 파일에 DECLARE_SERIAL
4. 소스 파일에 IMPLEMENT_SERIAL
CObject
.Serialize() // virtual

참조 사이트: