디버깅 용으로 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
가끔 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
반응형
'Toy Project' 카테고리의 다른 글
[리눅스] 아주 작은 로그 서버 (0) | 2007.11.15 |
---|---|
[장난] 싫은 놈의 바탕화면 아이콘들을 엉망으로 섞어 놓자 (0) | 2007.10.31 |
[유틸] HEX 값을 실수 값으로 변환 (0) | 2007.10.25 |
[라이브러리] DOS 시절의 XMS 라이브러리 (0) | 2007.09.22 |
[유틸] WinMagnet 1.1 (8) | 2007.09.13 |