스트림 IO/기타
직렬화 - MFC
jjryu
2008. 12. 7. 18:40
CArchive
CMemFile, CSocketFile 클래스와 연결될 수 있다
CObject를 상속한 객체의 .Serialize()에 인자로 넘겨주면 해당 객체가 스스로(?) 직렬화한다.
CArchive()
CArchive()
CArchive::store|CArchive::load
.Read()
.Write()
.ReadString()
.ReadString()
.WriteString()
.IsStoring()
.<<()
.>>()
<- CFile
<- CMemFile
<- CSocketFile
.IsStoring()
.<<()
.>>()
<- CFile
<- CMemFile
<- CSocketFile
사용자 정의 클래스 객체를 직렬화할 수 있는 조건
1. CObject 클래스로부터 직접 또는 간접적으로 상속을 받는다.
.Serialize()를 재정의
처음에 부모의 .Serialize 함수도 호출
2. 생성자 함수를 만든다. // 객체 초기화
3. 헤더 파일에 DECLARE_SERIAL
4. 소스 파일에 IMPLEMENT_SERIAL
3. 헤더 파일에 DECLARE_SERIAL
4. 소스 파일에 IMPLEMENT_SERIAL
CObject
.Serialize() // virtual
참조 사이트:
http://jjjryu.tistory.com/entry/CDocument-%ED%8C%8C%EC%9D%BC-%EC%9E%85%EC%B6%9C%EB%A0%A5
http://jjjryu.tistory.com/entry/MFC-4
http://jjjryu.tistory.com/entry/MFC-4