본문 바로가기
프로그래밍/C++

[C/C++] MFC에서 콘솔 창(Console Window) 모드로 변경하여 디버깅하기

by 아끄리끄 2022. 3. 1.
반응형
SMALL
반응형

 

 

콘솔 창으로 디버깅 좀 했으면 좋겠는데...

 

가끔 GUI가 있는 C/C++ 코딩을 하다 보면

필요 이상으로 디버깅을 원활히 하고 싶을 경우가 많다.

 

기본적으로 사용하는 콘솔 모드에서는

원하는 값들을 화면에 출력하는 게 편리했는데

MFC 창에서는 원하는 값들을 화면에 출력하려면 여간 불편한 일이 아닐 수 없다.

 

그래서 디버깅을 위한 콘솔 창으로 변경하는 방법을 소개하고자 한다.

 

1. MFC 프로젝트로 시작하기

우선 MFC로 예를 들어 설명을 시작한다.

MFC로 처음 프로젝트를 생성하고, 빌드 후 실행하면 아래와 같은 그림으로 실행될 것이다.

 

MFC 상태에서 디버깅을 하기 위해서는 Trace문을 통해 출력 창에 출력하는 방법밖에 없을 것이다.

만약 MFC 화면상에 디버깅을 위한 정보를 출력한다면 생각보다 많은 코딩을 추가하여야 하며,

최종적으로는 그 코딩이 실제 동작하는 실행 파일에서는 제외시켜야 하기 때문에 곤란한 경우가 많다.

 

 

2. 프로젝트 옵션 변경을 통한 콘솔 창(Console Window) 모드 On 시키기

콘솔 창을 띄우는 방법은 생각보다 간단하다.

MFC 프로젝트 옵션에 들어가면, "링커"-"시스템"-"하위 시스템" 항목의

"창(/SUBSYSTEM:WINDOWS)"를 "콘솔(/SUBSYSTEM:CONSOLE)"로 변경하면 된다.

프로젝트 속성 "링커"-"시스템"-"하위 시스템" 변경 전
프로젝트 속성 "링커"-"시스템"-"하위 시스템" 변경 후

 

이렇게 변경 후 "적용"-"확인"을 누르면 속성 변경은 끝이 난다.

그럼 이제 빌드를 해보자! 그럼 간단히....."빌드 실패"......

 

그렇다 빌드가 실패한 거다. 그리고 굉장히 익숙해 보이는 함수명이 보인다. Main???

 

3. Main함수 추가하기

그렇다! 콘솔 모드를 진행하려면 Main함수가 필요하다.

굉장히 익숙해서 잊어버리고 있었지만 Main함수가 필요하다.

MFC로 생성된 프로젝트에서는 기본적으로 Main함수가 동작하지 않기 때문에 Main함수는 존재하지 않는다.

Main 함수를 추가하는 방법은 2가지다.

 

1) 새로운 CPP 파일을 만들어서 추가하기

2) 기존 프로젝트 코드에 추가하기

 

코딩하는 방법과 진행되고 있는 코딩의 방향에 따라서 어디에 Main함수를 작성하느냐 하는 건

프로그래머의 각자의 판단에 맡긴다.

우선 여기서는 빌드가 되어 실행이 되는 과정을 보여줘야 하기 때문에

간단히 2) 방법으로 아래 그림과 같이 진행하였다.

(cout과 endl을 사용하기 위해 #include <iostream>을 한 부분은 그림에서 생략되었다.)

 

역시 빌드는 성공하였으며, 프로젝트를 실행하면 아래와 같은 화면을 확인할 수 있다.

 

이제는 GUI가 있는 MFC 프로젝트에서도 디버깅을 위해

자유롭게 콘솔 창(Console Window)을 활용하길 바란다.

 

끝.

반응형
LIST

'프로그래밍 > C++' 카테고리의 다른 글

[C/C++] 메모리 동적할당 new와 malloc의 차이점  (0) 2022.05.15

댓글