如何让VC6.0支持宏定义TRACE
UINT32 TraceLog(const char *fname,const char *line,const char *fmt, ...)
{
/*************************************************************************/
/* 局部变量声明 */
/*************************************************************************/
UINT8 CurTime[20] = {0}; // 获取当前时间年月日时分秒
UINT8 Time_YMD[11] = {0}; //获取当前时间年月日
UINT8 Time_YM[8] = {0}; //获取当前时间年月
UINT8 Log_File_Name[50] = {0}; //log文件名
UINT8 Log_Dir_Name[50] = {0}; //log目录名
UINT8 LogInfo[120] = {0}; //写入log的文件信息
UINT8 msg[1024] = {0}; //保存TraceLog传来的信息
UINT8 Cur_File_Name[50] = {0}; //当前函数所在文件名
UINT32 ret = 0;
UINT8 *FunName = NULL;
va_list args;
/************************************************************************/
/* 获得文件名字 */
/************************************************************************/
strcpy(Cur_File_Name, fname);
StrTok(Cur_File_Name,"\\");
va_start(args, fmt);
ret = vsprintf(msg, fmt, args);
va_end(args);
GetSysTime(CurTime);
strncpy(Time_YM,CurTime,7);
strncpy(Time_YMD,CurTime,10);
sprintf(Log_Dir_Name,"%s%s",DIRPATHLOG,Time_YM);
sprintf(Log_File_Name,"%s\\%s.LOG",Log_Dir_Name,Time_YMD);
/************************************************************************/
/* 获得函数名字 */
/************************************************************************/
FunName = Pop_Stack();
/************************************************************************/
/* 格式化输出:时间 文件名称 函数名称 行号 以及日志信息 */
/************************************************************************/
sprintf(LogInfo,"%s %s %s <%d> %s\n",
CurTime,Cur_File_Name,FunName,line,msg);
CreateLogDir(Log_Dir_Name);
WriteLogInfo(Log_File_Name,LogInfo);
return ret;
}
上面函数记录日志的 函数
我想实现一个这样的操作,
#define TRACE(X) TraceLog(__FILE__,__LINE__,X)
使用方法 TRACE("The result is %d.",ii);
我想请问一下 在VC6.0下如何 定义一个这样的宏 TRACE 平台必须是VC6.0 对于gcc 或者vs 2005以上版本我都实现了
请各位高手们 出来秀一下吧
{
/*************************************************************************/
/* 局部变量声明 */
/*************************************************************************/
UINT8 CurTime[20] = {0}; // 获取当前时间年月日时分秒
UINT8 Time_YMD[11] = {0}; //获取当前时间年月日
UINT8 Time_YM[8] = {0}; //获取当前时间年月
UINT8 Log_File_Name[50] = {0}; //log文件名
UINT8 Log_Dir_Name[50] = {0}; //log目录名
UINT8 LogInfo[120] = {0}; //写入log的文件信息
UINT8 msg[1024] = {0}; //保存TraceLog传来的信息
UINT8 Cur_File_Name[50] = {0}; //当前函数所在文件名
UINT32 ret = 0;
UINT8 *FunName = NULL;
va_list args;
/************************************************************************/
/* 获得文件名字 */
/************************************************************************/
strcpy(Cur_File_Name, fname);
StrTok(Cur_File_Name,"\\");
va_start(args, fmt);
ret = vsprintf(msg, fmt, args);
va_end(args);
GetSysTime(CurTime);
strncpy(Time_YM,CurTime,7);
strncpy(Time_YMD,CurTime,10);
sprintf(Log_Dir_Name,"%s%s",DIRPATHLOG,Time_YM);
sprintf(Log_File_Name,"%s\\%s.LOG",Log_Dir_Name,Time_YMD);
/************************************************************************/
/* 获得函数名字 */
/************************************************************************/
FunName = Pop_Stack();
/************************************************************************/
/* 格式化输出:时间 文件名称 函数名称 行号 以及日志信息 */
/************************************************************************/
sprintf(LogInfo,"%s %s %s <%d> %s\n",
CurTime,Cur_File_Name,FunName,line,msg);
CreateLogDir(Log_Dir_Name);
WriteLogInfo(Log_File_Name,LogInfo);
return ret;
}
上面函数记录日志的 函数
我想实现一个这样的操作,
#define TRACE(X) TraceLog(__FILE__,__LINE__,X)
使用方法 TRACE("The result is %d.",ii);
我想请问一下 在VC6.0下如何 定义一个这样的宏 TRACE 平台必须是VC6.0 对于gcc 或者vs 2005以上版本我都实现了
请各位高手们 出来秀一下吧
...全文
相关推荐
VC调试工具TRACEWIN 超级实用
该文件包含了VC下的调试工具tracewin 及其使用说明 解决了vc6.0下无法看到trace信息的BUG
将大容量STM32F103VC工程改变为中容量STM32F103C8T6工程详细过程.pdf
图文并茂,一步一步将截屏将大容量STM32F103VC工程改变为中容量STM32F103C8T6工程详细过程,并详细叙述了每一步的要点。
VC调试以及TRACE()函数的用法1
VC调试以及TRACE()函数的用法1
VC中关于VC6.0的 介绍
介绍了基本的C++开发环境vc6.0,其中更是对MFC的叙述更加详细有用。希望会对新手有帮组
c++入门 VC6.0
理解VC工程,MFC程序结构分析 深入MFC类库


