Visual Studio 2010에서 빈 프로젝트나 Win32 콘솔 응용 프로그램을 생성하면 이전의 Visual Studio에서와 달리 실행 파일이 마지막 표준 출력 결과를 볼 수 있도록 기다려 주지 않고 꺼진다.(단축키 Ctrl+F5) 이는 실행 파일의 출력이 지정되지 않았기 때문인데, 원래 콘솔 프로그램은 표준 출력을 콘솔로 내보내는 게 맞지만, 오늘날 콘솔 프로그램은 GUI의 프론트엔드로 쓰이는 일이 잦아지기 때문인지 Visual Studio 2010부터는 출력을 콘솔로 기본 지정하지 않고 있다.
이를 해결하려 한다면 당연히 출력을 콘솔로 지정하면 된다. 다음 둘 중 한 방법으로 프로젝트의 출력을 콘솔로 지정할 수 있다.
- Visual Studio 2010에서 프로젝트를 열고 메뉴 프로젝트> 속성> 구성 속성> 링커> 시스템: 하위 시스템
필드를 찾아 값을 다음과 같이 준다.
/SUBSYSTEM:CONSOLE - XML 포맷인 .vcproj 파일을 텍스트 에디터로 열고 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">과 바로 다음의 </PropertyGroup> 사이, <Link>와 </Link> 밖에 다음을 추가한다. (Release에도 추가하는 건 자유)
<Link>
<SubSystem>Console</Subsystem>
</Link>
반면에 프로젝트마다 이런 설정을 하기 귀찮다면 이 값을 기본으로 줄 수도 있다.
- 텍스트 에디터를 관리자 권한으로 실행해 다음 ...\vcprojects 디렉터리에서
- 64비트의 경우 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojects
- 32비트의 경우 C:\Program Files\Microsoft Visual Studio 10.0\VC\vcprojects
Param="SUBSYSTEM = CONSOLE" - emptyproj.vsz 파일을 같은 방식으로 편집하면 빈 프로젝트에도 옵션이 적용되지만, 권장하지 않겠다.
Win32 콘솔 응용 프로그램을 생성하고 [확인], [다음]을 눌러 빈 프로젝트 체크박스를 선택하면 빈 프로젝트를 생성하는 것과 거의 같은 상태가 된다.
프리프로세서 #include <stdlib.h>를 주고 main() 끝에 system("pause");를 쓰면 프로젝트 기본 옵션을 바꾸지 않고 같은 효과를 볼 수 있다. 물론 실행 파일의 덩치가 커지기 때문에 완전히 같은 효과는 아니다. 나는 system("pause>nul");을 쓴다.
'Sablog Models > 플랫폼·툴킷' 카테고리의 다른 글
C/C++에서 IEEE 754 NaN/Inf 및 연산 오류 탐지 방법 (0) | 2012.09.20 |
---|---|
gcc 4.7.0 build for windows msys 1.0 (0) | 2012.06.03 |
MS 컴파일러의 문자/문자열 자료형 (0) | 2011.07.25 |
JIT (Just-in-time) debug, Post mortem debug. (0) | 2010.08.22 |
_MSC_VER (2) | 2009.06.07 |