首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么让VC6.0支持宏定义TRACE

2012-09-05 
如何让VC6.0支持宏定义TRACEUINT32 TraceLog(const char *fname,const char *line,const char *fmt, ...){

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


[解决办法]
VC本身就包含TRACE宏了啊。
[解决办法]
仅供参考

C/C++ code
#include <stdio.h>#define DEBUG2(x,y) "Line " #y " of File " x#define DEBUG1(x,y) DEBUG2(x,y)#define LINE_FILE DEBUG1( __FILE__ , __LINE__ )const char *str = LINE_FILE;void main() {    printf("%s\n",str);}//Line 10 of File c:\tmp\tmp\foo.c 

热点排行