📄 xdebug.cpp
字号:
//=======================================================================================================================
//
// 文件: Xdebug.cpp
//
// 版本: V1.0
//
// 描述:
//
// 作者: xtra
//
// 注意: 因为使用了 timeGetTime () , 所以需要在 link 设置中加入: Winmm.lib .
//
// 创建日期:2003-2-19
//
// 修改历史: 日期 修改内容
//
//
//=======================================================================================================================
#include "stdafx.h"
#include "Xdebug.h"
#include "mmsystem.h"
//==================================================================================================================
// 宏
//==================================================================================================================
#define __TEST__
#define MACRO_Log_File "LogFile.txt"
//=========================================================================================================================
//功能:
//
//参数:
// 1. fmt (in)
// 2. ... (in)
//返回:
//
//=========================================================================================================================
BOOL Show_Msg ( char * fmt , ... )
{
char Msg [ 255 ] ;
va_list vl ;
va_start ( vl , fmt ) ;
vsprintf ( Msg , fmt , vl ) ;
va_end ( vl ) ;
Log ( Msg ) ;
AfxMessageBox ( Msg ) ;
return FALSE ;
}
BOOL Show_Msg_Exit ( char * fmt , ... )
{
char Msg [ 255 ] ;
va_list vl ;
va_start ( vl , fmt ) ;
vsprintf ( Msg , fmt , vl ) ;
va_end ( vl ) ;
Log ( Msg ) ;
AfxMessageBox ( Msg ) ;
AfxGetMainWnd ()->PostMessage ( WM_CLOSE ) ;
return FALSE ;
}
BOOL Show_Err_Msg ( void )
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
Show_Msg ( ( char * )( LPCTSTR ) lpMsgBuf ) ;
LocalFree( lpMsgBuf );
return FALSE ;
}
//=========================================================================================================================
//功能:
//
//参数:
// 1. str (in)
// 2. arglist (in)
//返回:
//
//=========================================================================================================================
void Log ( const char * fmt , ... )
{
#ifdef __TEST__
char Msg [ 255 ] ;
va_list vl ;
va_start ( vl , fmt ) ;
vsprintf ( Msg , fmt , vl ) ;
va_end ( vl ) ;
static bool First = TRUE ;
if ( First )
{
remove ( MACRO_Log_File ) ;
First = FALSE ;
}
FILE * fp = fopen ( MACRO_Log_File , "a+" ) ;
if ( fp == NULL )
{
Show_Msg ( "Can't Create LogFile.txt ! " ) ;
return ;
}
fprintf ( fp , "%s" , Msg ) ;
fprintf ( fp , "\n" ) ;
fclose ( fp ) ;
#endif
return ;
}
void LogTime ( const char * fmt , ... )
{
#ifdef __TEST__
char Msg [ 255 ] ;
va_list vl ;
va_start ( vl , fmt ) ;
vsprintf ( Msg , fmt , vl ) ;
va_end ( vl ) ;
static bool First = TRUE ;
if ( First )
{
remove ( MACRO_Log_File ) ;
First = FALSE ;
}
FILE * fp = fopen ( MACRO_Log_File , "a+" ) ;
if ( fp == NULL )
{
Show_Msg ( "Can't Create LogFile.txt ! " ) ;
return ;
}
//log time
char msg2 [ 80 ] ;
static DWORD time_old = timeGetTime () ;
DWORD NewTime = timeGetTime() ;
wsprintf ( msg2 , "Now= %d , Delt= %d ms : " , NewTime , NewTime - time_old ) ;
time_old = NewTime ;
fprintf ( fp , msg2 ) ;
//log msg
fprintf ( fp , "%s" , Msg ) ;
fprintf ( fp , "\n" ) ;
fclose ( fp ) ;
#endif
}
void Log_Screen ( int X , int Y , const char* fmt , ... )
{
#ifdef __TEST__
char Msg [ 255 ] ;
va_list vl ;
va_start ( vl , fmt ) ;
vsprintf ( Msg , fmt , vl ) ;
va_end ( vl ) ;
CRect rc ( X , Y , GetSystemMetrics ( SM_CXSCREEN ) , GetSystemMetrics ( SM_CYSCREEN ) ) ;
HDC hDc = GetDC ( NULL ) ;
DrawText ( hDc , Msg , strlen ( Msg ) , rc , DT_LEFT | DT_TOP ) ;
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -