⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmdebug.cpp

📁 Soul的源代码,类似于劲舞团之类的游戏
💻 CPP
字号:
#include <MatrixCore/System/CMDebug.h>

#include <TChar.h>
#include <stdio.h> 

using namespace MatrixCore::System;

///////////////////////////////////////////////////////////////////////////////
//	积己磊.家戈磊.
///////////////////////////////////////////////////////////////////////////////
CMDebug::CMDebug()
	: tracer1( 0 ),tracer2( 0 ),tracer3( 0 )	
{
	bInitFlag = false;
}

CMDebug::CMDebug( DEBUGTYPE type, LPCTSTR fileName )
	: tracer1( 0 ),tracer2( 0 ),tracer3( 0 )	
{
	bInitFlag = false;
	initialize( type, fileName );
}

CMDebug::~CMDebug()
{
	close();
}

///////////////////////////////////////////////////////////////////////////////
//	
///////////////////////////////////////////////////////////////////////////////
//void CMDebug::initialize()
//{
//	initialize(CMDebug::DEBUGTYPE_FILE,"err/NetErr");
//}
bool CMDebug::initialize( DEBUGTYPE type, LPCTSTR fileName )
{
	// 茄啊瘤 究父 荤侩窍磊. 茄锅父 檬扁拳 等促.
	if(bInitFlag == false)
		bInitFlag = true;
	else
		return false;

	switch( type )
	{
	case DEBUGTYPE_CONSOLE:			tracer1 = ( CMTracer* )new CMTracerConsole(); tracer1->open( fileName );		break;
	case DEBUGTYPE_FILE:			tracer2 = ( CMTracer* )new CMTracerFile();	  tracer2->open( fileName );		break;
	case DEBUGTYPE_TRACE:			tracer3 = ( CMTracer* )new CMTracerTrace();	  tracer3->open( fileName );		break;
	case DEBUGTYPE_CONSOLE_FILE:
		tracer1 = ( CMTracer* )new CMTracerConsole();		
		tracer1->open( fileName );
		tracer2 = ( CMTracer* )new CMTracerFile();	
		tracer2->open( fileName );
		break;
	case	DEBUGTYPE_CONSOLE_TRACE:
		tracer1 = ( CMTracer* )new CMTracerConsole();
		tracer1->open( fileName );
		tracer3 = ( CMTracer* )new CMTracerTrace();
		tracer3->open( fileName );
		break;
	case	DEBUGTYPE_FILE_TRACE:
		tracer2 = ( CMTracer* )new CMTracerFile();
		tracer2->open( fileName );
		tracer3 = ( CMTracer* )new CMTracerTrace();
		tracer3->open( fileName );
		break;
	case	DEBUGTYPE_ALL:
		tracer1 = ( CMTracer* )new CMTracerConsole();
		tracer1->open( fileName );
		tracer2 = ( CMTracer* )new CMTracerFile();
		tracer2->open( fileName );
		tracer3 = ( CMTracer* )new CMTracerTrace();
		tracer3->open( fileName );
		break;

	default :
		return false;
	}

	return true;
}

void CMDebug::close()
{
	if( tracer1 != 0 )
	{
		tracer1->close();
		delete tracer1;
		tracer1 = 0;
	}

	if( tracer2 != 0 )
	{
		tracer2->close();
		delete tracer2;
		tracer2 = 0;
	}

	if( tracer3 != 0 )
	{
		tracer3->close();
		delete tracer3;
		tracer3 = 0;
	}
}

void CMDebug::output( LPCTSTR format, ... )
{
	TCHAR buffer[2048];
	va_list args;

	va_start( args, format );
	_vstprintf( buffer, format, args );
	va_end( args );

	if( tracer1 != 0 )
	{
		tracer1->output( buffer );
	}

	if( tracer2 != 0 )
	{
		tracer2->output( buffer );
	}

	if( tracer3 != 0 )
	{
		tracer3->output( buffer );
	}
}

CMDebug& CMDebug::operator << ( bool arg )
{
	output( _T( "%d" ), arg );

	return *this;
}

CMDebug& CMDebug::operator << ( int arg )
{
	output( _T( "%d" ), arg );

	return *this;
}

CMDebug& CMDebug::operator << ( long arg )
{
	output( _T( "%d" ), arg );

	return *this;
}

CMDebug& CMDebug::operator << ( DWORD arg )
{
	output( _T( "%d" ), arg );

	return *this;
}

CMDebug& CMDebug::operator << ( __int64 arg )
{
	output( _T( "%d" ), arg );

	return *this;
}

CMDebug& CMDebug::operator << ( LPTSTR arg )
{
	output( arg );

	return *this;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -