본문 바로가기

전자 공학/MFC

[MFC 독학하기] 5. HelloMFC 예제 분석하기(1) - CWinApp

반응형

 

안녕하세요. 취업한 공대누나입니다.

오늘부터 본격적으로 MFC에 대한 공부를 들어갑니다.

저와 같이 공부하시는 분들을 위해서 아주 천천히 진행해볼 예정입니다

급한 것도 없고 개인 공부이기 때문이죠~

 

우선 저는 HelloMFC라는 프로젝트를 만들었습니다.

예제 소스코드를 따라치고 빌드를 했는데 다음과 같은 에러가 발생했습니다.

 

#error:  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] 

 

우선 저와 같이 저런 에러코드가 발생하시는 분들은 아래와 같이 해결해야합니다.

 

프로젝트 -> 속성-> 구성 속성 -> 고급 -> MFC 사용 -> 공유 DLL에서 MFC 사용

 

이렇게 해주시면 에러가 발생하지 않고 정상 동작하는 것을 확인하실 수 있습니다.

 

이제 본격적으로 나름 소스 코드 분석에 들어가보도록 하겠습니다.

 

 

1. 헤더 파일

<afxwin.h>

혹시 이 헤더파일을 사용하는데 해당 파일을 열 수 없다는 에러가 발생하시는 분들은 아래와 같이 조치를 취해주세요.

2021/01/11 - [전자 공학/MFC] - afxwin.h 파일(소스)를 열 수 없습니다. (visual studio 2019)

여러 헤더 파일을 포함하는 헤더 파일로, MFC 어플리케이션에 대한 주 헤더파일입니다.

MFC를 사용해서 윈도우 프로그램을 작성할 때는 위의 헤더파일을 포함시킵니다.

 

2. 클래스 선언

1) CWinApp

CWinApp 클래스는 응용프로그램과 관련된 작업을 처리하는 클래스입니다.

응용 프로그램의 윈도우 클래스 등록, 메인 윈도우 생성, 초기화 코드, 메시지 루프, 종료 코드를 제공합니다.

MFC 프로젝트 구성에서 CWinApp은 필수 클래스입니다. 그래서 응용 프로그램의 형식이 변경되더라도 CAppWin 클래스는 항상 포함이 됩니다.

 

CWinApp클래스는 InitInsatnce()라는 가상 함수가 존재합니다.

사용자는 이 가상함수를 재정의해서 응용프로그램의 초기화 코드를 만들어야 합니다.

이 함수를 재정의하지 않으면 CWinApp에서 제공하는 InitInstance()함수가 호출됩니다.

초기화에 성공하면 True를 실패하면 False를 리턴하게 됩니다.

위의 소스코드를 보시면 메인 윈도우의 기능을 가지는 CMainFrame 객체를 생성하고 ShowWindow() 멤버 함수를 호출해서 윈도우를 화면에 나타냅니다.

초기화 작업이 끝났으므로 TRUE를 리턴합니다.

 

 

오늘은 기본적인 설정과 함께 CWinApp클래스에 대해 알아보았습니다.

C++에 대한 기본 개념이 부족해서 C++도 공부하는 포스팅을 올려볼까 생각하고 있습니다.

기본기가 부족함을 절실하게 느끼면서도 공부할게 생긴다는게 좋기도 나쁘기도 합니다.

 

 

반응형