닷넷 2005다.
먼저 코딩하고 있는 프로젝트의 속성 창을 띄운 후, 링커->시스템->서브 시스템 항목을 찾고
윈도우로 되어 있는 서브 시스템을 콘솔로 바꾼다. 그리고 아래와 같이 코딩한다.
#include "stdafx.h"
#include "GameCore.h"
#include "GameCore.h"
CGameCore GameCore;
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT nCmdShow )
{
GameCore.ProcessStart(hInst, E_Graphics_RESOLUTION::RESOL_640_480,
{
GameCore.ProcessStart(hInst, E_Graphics_RESOLUTION::RESOL_640_480,
E_Graphics_COLORFORMAT::FMT_A8R8G8B8,
false);
return 0;
}
return 0;
}
void main()
{
WinMain(GetModuleHandle(NULL), NULL, NULL, SW_SHOW);
}
{
WinMain(GetModuleHandle(NULL), NULL, NULL, SW_SHOW);
}
WinMain함수와는 별도로 평소 콘솔모드 코딩하듯이 main()함수를 타이핑 하고
그 안에 WinMain(GetModuleHandle(NULL), NULL, NULL, SW_SHOW);를
타이핑한다. 그러면 디버깅을 위한 콘솔 모니터링 준비 끝
이제 stdio.h를 포함시키고 콘솔창에 모니터링할 내용을 printf()를 사용하여 콘솔에 보내면
된다. 그러면 위와 같은 결과를 볼 수 있다. 좌측 윈도우는 다이렉트X를 초기화하여 윈도우
모드로 띄운 창이고 우측 윈도우는 프로그램 상태를 모니터링하고 있는 콘솔창의 모습이다.
이것이 프로그램 종료 후의 콘솔 창 내용이다.
아래 코드는 실제 내가 사용하고 있는 코드로서 어떻게 콘솔창을 사용하고 있는지를 보여줄
수 있는 코드이다.
while(1)
{
if(true == m_isGameQuit)
{
printf("Close Game by Window quit message\n");
break;
}
if(GetKeyState(VK_ESCAPE))
{
printf("Close Game by pushing ESC key\n");
break;
}
{
if(true == m_isGameQuit)
{
printf("Close Game by Window quit message\n");
break;
}
if(GetKeyState(VK_ESCAPE))
{
printf("Close Game by pushing ESC key\n");
break;
}
//윈도우 메세지 처리
GetMessage( &msg, NULL, 0, 0 );
TranslateMessage( &msg );
DispatchMessage( &msg );
GetMessage( &msg, NULL, 0, 0 );
TranslateMessage( &msg );
DispatchMessage( &msg );
this->AdvanceOneFrame(); // 게임의 한 프레임을 진행시킨다.
}
}
printf를 이용한 콘솔창 이용의 또다른 장점은 printf문의 내용 자체가 코드의 내용을 설명하는
주석의 역할도 겸해 준다는 점이다.
'프로그래밍 ----------------------- > C,C++ 팁' 카테고리의 다른 글
내적이란거 (0) | 2008.10.13 |
---|---|
윈도우에서 사용하는 문자 코드에 대한 이해 (0) | 2008.10.13 |
평면의 방정식, 평면의 공간적 해석 (0) | 2008.10.13 |
알파값 살아있는 텍스쳐, 단색으로 찍기 (0) | 2008.10.13 |
알파 블렌딩 (0) | 2008.10.13 |