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:21
  • 2294

oracle中解决角色PLUSTRACE不存在

在sqlplus中用autotrace查看执计划时出现如下错误提示:SQL> conn scott/tigerSQL> set autot on;SP2-0618: 无法找到会话标识符。启用检查 PL...
  • ilovemilk
  • ilovemilk
  • 2008-04-16 22:05:00
  • 4078

Android 性能分析之TraceView使用(应用耗时分析)

TraceView概述,trace文件的3种生成方式 ,android studio 直接生成(推荐) ,嵌入代码代码生成,使用DDMS来生成,TraceView界面及参数介绍,使用TraceView...
  • ecliujianbo
  • ecliujianbo
  • 2017-08-03 10:13:18
  • 1931

VC中TRACE

TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调试也在RELEASE的时候减少代...
  • yangsen2016
  • yangsen2016
  • 2007-06-04 08:57:00
  • 25361

Debug与Trace的区别

一.首先要明白Debug与Trace的区别:   1. Debug.Write和Trace.Write有什么不同?何时应该使用哪一个? Debug类提供一组帮助调试代码的方法和属性。...
  • freeboy1015
  • freeboy1015
  • 2012-04-05 20:37:06
  • 5331

VC中TRACE()的用法,终于学会了点皮毛,好累

个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于在CSDN上找到了,真是个高地方啊,方法如下:1.在MFC中加入TRACE语句2.在TOOLS->M...
  • jiang1013nan
  • jiang1013nan
  • 2009-05-10 19:59:00
  • 8213

调试技巧MFC中TRACE宏的使用

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

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:35
  • 1813

TRACE 的信息是显示在OutPut窗口中的(MFC 机理)

MFC提供了一个小工具Tracer.exe来帮助调试Windows-Based的程序,Tracer可以在Output或Console窗口中显示MFC Library的内部操作信息,以及应用程序的War...
  • nodeman
  • nodeman
  • 2015-02-06 16:27:08
  • 1970

MFC trace实现

  • 2011年05月25日 09:56
  • 72KB
  • 下载
收藏助手
不良信息举报
您举报文章:TRACE在MFC里使用
举报原因:
原因补充:

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