如何让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以上版本我都实现了
请各位高手们 出来秀一下吧