如何让VC6.0支持宏定义TRACE

xxb249 xxb249 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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以上版本我都实现了
请各位高手们 出来秀一下吧
...全文
评论 13
收藏 已收藏
分享
返回顶部
xxb249
C语言 70,039 成员 243,237 内容