Toy Project

[클래스] WIn32 Console Output Class

prostars 2007. 10. 23. 12:49
디버깅 용으로 TRACE를 많이 사용할 것이다.
가끔 TRACE를 사용하기 곤란한 상황이나 다른 여러 상황으로 콘솔 출력이 필요할 때가 있다.
2002년도에 C++ Builder 용으로 만들어서 사용하던 작은 클래스를 VC++에서 컴파일되도록 수정했다.
단지 AnsiString을 사용했던 부분을 CString으로 교체했을 뿐이다.
TRACE처럼 디버깅 모드에서 사용할 수 있으며 릴리즈 모드에서는 아무런 반응도 안 하는 더미가 된다.

#ifndef ConsoleOut
#define ConsoleOut

class cConsoleOut
{
public :
    cConsoleOut( )
    {
        #ifdef _DEBUG
        AllocConsole( );
        hOut = GetStdHandle( STD_OUTPUT_HANDLE );
        #endif
    };
    ~cConsoleOut( )
    {
        #ifdef _DEBUG
        FreeConsole( );
        #endif
    }
    void PutString( CString strMessage )
    {
        #ifdef _DEBUG
        DWORD dwWrite;        
        WriteConsole( hOut, strMessage, strMessage.GetLength(), &dwWrite, NULL );
        #endif
    };
private :
    HANDLE  hOut;
};
#endif
반응형