Serialization을 구현하기 위하여 우선 가장 기초가 되어야할 사항은 새로운 클래스를 반드시 CObject 클래스로부터 상속받아야 하는 점입니다. 하지만, 이것이 다는 아니며 약간의 작업이 더 필요하다는 것은 잘 아실 것입니다.
어떤 목적의 클래스인지에 따라서 적절한 매크로 함수를 사용해야 할 것입니다. 그래서, 세 가지 종류로 구분이 되어있습니다.
- IMPLEMENT_DYNAMIC(), DECLARE_DYNAMIC(): CRuntimeClass를 통한 런타임 클래스 정보를 사용할 수 있도록 필요한 선언을 매크로 함수 한 줄로서 자동으로 추가할 수 있도록 만들어줍니다. DECLARE_DYNAMIC(현재 클래스 이름): 이것은 클래스의 선언부 (헤더 파일)에서 직접 써주시면 자동으로 관련된 내용을 클래스에 선언해줍니다. IMPLEMENT_DYNAMIC(현재 클래스 이름, 상위 클래스 이름): 이것은 클래스의 소스 코드 부분 (CPP 파일)의 상단부에 기재하여 주시면 됩니다.
- IMPLEMENT_DYNCREATE(), DECLARE_DYNCREATE() : 런타임 정보와 동적 개체 생성, Assert/Valid 등을 지원합니다. 사용 방법은 역시 동일합니다.
- IMPLEMENT_SERIAL(), DECLARE_SERIAL(): CObject 클래스에서 사용할 수 있는 모든것을 가능하도록 지원합니다. 동적 개체 생성, 직렬화 등등이 있겠군요. 사용 방법은 역시 동일합니다.
'Software Development > Visual C++' 카테고리의 다른 글
| ATL 기반 In-Process Server에서 다중 스레드가 필요할 때. (0) | 2007/03/16 |
|---|---|
| COM 인터페이스를 좀 더 편리하게 쓰는법 (0) | 2006/12/04 |
| #50. Serialization과 관련된 MFC의 3대 매크로 함수 (0) | 2002/08/09 |
| #49. CImage 클래스 (0) | 2002/08/01 |
| #48. Serialization이 가능하도록 CObject 클래스 상속 (원제: .NET에서의 CObject 클래스 상속) (0) | 2002/07/24 |
| #47. Managed Extensions for C++의 새로운 문법들 (0) | 2002/07/19 |