superkind
6/29/2018 - 6:57 AM

MFC 매크로

#mfc

MFC 매크로

  • DECLARE 매크로는 클래스에 위치하면서 구동의 선언을 의미
  • IMPLEMENT는 이선언에 해당하는 부분의 구동을 의미

선언과 수행 매크로

선언 매크로수행매크로설명
DECLARE_DYNAMICIMPLEMENT_CYNAMIC베이스 클래스로부터 파생되어 변화된 클래스로 구동
DECLARE_DYNCREATEIMPLEMENT_DYNCREATECObject클래스로 부터 파생되어 다양한 형태의 클래스로 생성됨
DECLARE_MESSAGE_MAPBEGIN_MESSAGE_MAP END_MESSAGE_MAP매시지 맵핑을 선언하고 수행매크로 사이에 설정된 메시지처리를 해당 클래스에서 구동
DECLARE_SERIALIMPLEMENT_SERIALCObject 클래스로 부터 파생된 다른 클래스와 연결 하도록 함
  • 이 매크로들이 발생되는 원인은 계층적으로 파생되어 클래스자체가 다양하게 변화되기 때문
  • 이렇게 다양하게 변화되어도 현재 클래스의 기본적인 정보를 알아야 함
  • 이렇게 하기 위해서는 도대체 근원이 어디인가를 알아야 하는것.
  • 마찬가지로 현재 복잡하게 파생된 여러 클래스들의 베이스 클래스가 무엇인가를 알아야만 이 클래스를 정확하게 구동할수 있는 것임. 이럴때 사용하는것이 매크로.
  • 또한 이렇게 매크로로 정의를 해놓음으로써 CRuntimeClass클래스를 이용하거나 또는 RUNTIME_CLASS 매크로를 이용하여 클래스를 CObject형태와 그외 여분의 정보로 분리할수 있게 됨.