실행화면

코드를 작성하다보면 어떠한 처리가 제대로 잘 이루어지고 있는지 확인하기 위해서 결과값을 출력해야하는 경우가 많다. 이런 경우 콘솔에서라면 printf()와 같은 함수를 이용하여 간단하게 출력할 수 있지만, 윈도우즈는 그런 간단한 한줄의 출력을 위해서 번거로운 과정들을 거쳐야 한다.

따라서 좀 더 개발의 편리함을 위해서 콘솔창을 띄우는 방법을 간단하게 소개하려 한다.

if (AllocConsole()) {

  freopen("CONIN$", "rb", stdin);

  freopen("CONOUT$", "wb", stdout);

  freopen("CONOUT$", "wb", stderr);


  // cout/cin/cerr을 사용하려면 아래의 주석을 지우면 된다.

  //std::ios::sync_with_stdio();

}


BOOL WINAPI AllocConsole(void); - 호출한 프로세스로부터 콘솔창 하나를 생성하는 함수

파라미터 : 없음

리턴 값 : 성공시 0이 아닌값, 실패시 0리턴.


참고로 AllocConsole을 여러번 호출한다고 여러개가 생성되지 않는다.

프로그램 종료전에 FreeConsole();로 해제해주자.


freopen()함수를 이용하면 기본적인 입출력을 가능하게 해주었다. printf등과 같은 입출력이 가능하며, 아래의 주석을 지우면 cout,cin같은 함수도 이용이 가능하다.

std를 붙이는게 귀찮다면 using namespace std;를 삽입해주도록 하자.


아래의 코드는 WM_CHAR 메시지를 받으면 해당 아스키코드에 해당하는 값을 콘솔창에 출력해주는 간단한 코드다.

모바일보기 불가능


'API 미니 프로젝트' 카테고리의 다른 글

Winapi) Dll Injector 소스  (1) 2014.01.12
by Conscientia 2013. 4. 7. 16:34
| 1 |