TRACE在MFC里使用

原创 2007年10月10日 15:07:00

TRACE   宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态。在Output中可以查看到结果。

但有一点不同的是:TRACE   宏只有在调试状态下才有所输出,而以前用的Printf   函数在任何情况下都有输出。和Printf   函数一样,TRACE函数可以接受多个参数如:  
   
  int   x   =   1;  
  int   y   =   16;  
  float   z   =   32.0;  
  TRACE(   "This   is   a   TRACE   statement/n"   );  
  TRACE(   "The   value   of   x   is   %d/n",   x   );  
  TRACE(   "x   =   %d   and   y   =   %d/n",   x,   y   );  
  TRACE(   "x   =   %d   and   y   =   %x   and   z   =   %f/n",   x,   y,   z   );  
  要注意的是TRACE宏只对Debug   版本的工程产生作用,在Release   版本的工程中,TRACE宏将被忽略。

注意:不要采用TRACE宏一次性输出大批量数据或不间断输出数据,因为这样有可能会时程序运行变得非常缓慢,如:    
   
  void   test_trace_e(void)  
  {  
  char   *pszDeb=new   char[1024*1024];  
   
  TRACE("%s/n",pszDeb);  
  //或者  
  for(int   i=0;i<sizeof(pszDeb);i++)  
  {  
  TRACE("%c/n",pszDeb[i]);  
  }  
  }  
   
  有一点需要注意的是,TRACE宏在只在调试(DEBUG)版本中起作用,而在发行(RELEASE)版本无效,所以不要在TRACE宏中进行对程序状态进行改变的计算或是调用对状态有改变的函数,例如:    
   
  void   yourClass::fun1()  
  {  
  TRACE("%d",++m_iTick);   //m_iTick状态改变  
  TRACE("return   value   =   %d",DoSomething());  
  }  
  void   yourClass:DoSomething()  
  {  
  if(m_szOut   ==   "No")  
  {  
  return   FALSE;  
  }  
  else  
  {  
  m_szOut="Yes";   //状态改变  
  reutrn   TRUE;  
  }  
  }   
 

Trace解析

今天在读关于图片解析的源码,看到这样的代码:/** * Decode an input stream into a bitmap. If the input stream is null, ...
  • watermusicyes
  • watermusicyes
  • 2017年03月09日 22:28
  • 1674

Class.newInstance()学习

在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?    用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什...
  • Truong
  • Truong
  • 2014年06月26日 21:23
  • 10761

segy格式转换

  • 2013年03月20日 22:39
  • 438KB
  • 下载

调试技巧MFC中TRACE宏的使用

个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于在CSDN上找到了,真是个高地方啊,方法如下: 1.在MFC中加入TRACE语句 2.在TOOL...
  • ghevinn
  • ghevinn
  • 2013年12月25日 10:50
  • 12105

TRACE宏(只在MFC的DEBUG中有效)|VC++非MFC项目中如何自定义TRACE宏|头文件的重复编译|DEBUGVIEW窗口

怎么样使用VC的TRACE宏 收藏者: kingofmezlh1 转自: http://blog.csdn.net/houffee/article/details/2692629 TRACE宏...
  • haiross
  • haiross
  • 2015年04月23日 10:03
  • 1655

MFC中使用TRACE

方法如下: 1.在MFC中加入TRACE语句 2.在TOOLS->MFC TRACER中选择 “ENABLE TRACING”点击OK 3.进行调试运行,GO(F5)(特别注...
  • swgshj
  • swgshj
  • 2014年06月05日 14:40
  • 975

TRACE、TRACE0、TRACE1、TRACE2、TRACE3

MFC中常见到以下代码段: { TRACE0("未能创建菜单栏\n"); return -1; // 未能创建 } TRACE为调试宏,仅在Debug模式下有效,调试运行时可在输...
  • zhangjuke
  • zhangjuke
  • 2013年09月23日 14:50
  • 2170

在调试MFC程序中查看变量的方法(包含控制台)

在调试MFC程序时,我们经常需要查看特定位置变量的输出值。或者在某特定条件执行时,给出一个输出标识。 一般来说,有3种方法: 1)调用TRACE(LPCTSTR lpszFormat, ...)函...
  • zxccaoya
  • zxccaoya
  • 2016年11月07日 19:49
  • 2034

VS调试以及Trace函数的用法

. VC调试入门 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是...
  • ndjk454164628
  • ndjk454164628
  • 2014年06月15日 22:21
  • 9854

调试技巧MFC中TRACE宏的使用

VC6.0 TRACE使用(在Debug窗口可以找到你要输出的信息) 个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于在CSDN上找到了,真是...
  • cytj129
  • cytj129
  • 2015年06月04日 14:24
  • 149
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TRACE在MFC里使用
举报原因:
原因补充:

(最多只允许输入30个字)