■ 도큐먼트의 종류

 도큐먼트  설명

 단일 도큐먼트

 ( SDI : Single Document Interface )

 한번에 하나의 도큐먼트만 처리할 수 있기 때문에 프로그램의 프레임 윈도우가 하나이다.

 메인 프레임 윈도우가 도큐먼트, 뷰를 품고 있다.

 다중 도큐먼트

 ( MDI : Multiple Document Interface )

 하나의 프로그램에서 여러 개의 문서를 동시에 작업할 때 사용하며 프로그램의 프레임 윈도우가 여러 개이다.

 자식 프레임 윈도우가 도큐먼트, 뷰를 품고 있다.

 

 

■ 단일 도큐먼트

하나의 프레임 윈도우에 대해 CFrameWnd 클래스에서 파생된 하나의 클래스만 갖는다.

메인 프레임이 윈도우에서 도큐먼트 뷰를 품고 있기 때문에 따로 윈도우를 생성하지 않아도 된다.

 

 

■ 다중 도큐먼트

。다중 프레임 윈도우의 계층 구조

CWnd

   CFrameWnd

      CMDIFrameWnd

      CMDIChildWnd

。두 종류의 프레임 윈도우가 있다.

메인 프레임 윈도우 : 프로그램 전체를 둘러싸고 있다. CMDIFrameWnd 클래스

자식 프레임 윈도우 : 메인 프레임 윈도우 안쪽의 작은 프레임 윈도우로 뷰 윈도우를 품고

                             있다. CMDIChildWnd 클래스. 

Posted by 모과이IT
,

■ RTTI (Run-Time Type Information)

 

- C++에서는 RTTI를 완벽하게 지원하지 않는다. 때문에 MS는 Compiler 차원에서 RTTI를 지원해 주기 위한 방법을 구현해낸 것이 CRuntimeClass와 여러가지 매크로 함수를 제공하고 있다.

 

■ CRuntimeClass

- 본질적으로 특정 클래스에 대한 정보를 담고 있는 구조체이다.

- 일반화된 객체 생성 : 클래스 이름을 사용하지 않고 객체를 생성하는 기능

기반 클래스를 가지고 있지 않다.

 

- 세 종류의 매크로를 제공한다.

DECLARE_DYNCREATE()

IMPLEMENT_DYNCREATE()

RUNTIME_CLASS()

 

 

■ IMPLEMENT_DYNCREATE(CSimpleCalc, CCmdTarget)

- 첫번째 변수는 동적으로 생성하고자 하는 객체 클래스 이름

- 두번째 변수는 그 클래스가 상속 받는 기반 클래스의 이름

ex) 메인 프레임의 경우, 기반 클래스가 CFrameWnd 이면 단일 도큐먼트(SDI), CMDIFrameWnd 이면 다중 도큐먼트(MDI) 형식이다.

 

 

■ RUNTIME_CLASS 매크로 

- class 정보를 구하는 매크로

- 주로 현재 사용하는 클래스가 유효한 클래스인지 판단

Posted by 모과이IT
,

■ 디버그 모드 컴파일

디버깅을 할 수 있는 대신 실행 파일의 크기가 커지고, 실행 속도도 느려진다.

 

■ 릴리즈 모드 컴파일 

디버깅을 할 수 없지만 실행 파일의 크기도 작아지고 실행 속도도 빨라진다.

 

디버깅 정보를 실행 코드 안에 넣느냐 안 넣느냐의 차이이다.

따라서 디버그 모드로 개발하고 개발이 완료되고 난 후에는 릴리즈 모드로 컴파일해서 배포한다. 

 

Posted by 모과이IT
,