TRACE在MFC里怎么用?马上给分?

GSK168 2003-12-19 10:01:55
我怎么看不到TRACE后的输出,请高手指教?
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonocast 2003-12-20
  • 打赏
  • 举报
回复
在Output中可以查看到结果
pahuihui 2003-12-20
  • 打赏
  • 举报
回复
按f5执行程序,然后在debug窗口就可以查看了
GSK168 2003-12-20
  • 打赏
  • 举报
回复
OK我已明的,谢谢大家!!
GSK168 2003-12-20
  • 打赏
  • 举报
回复
怎么设置DEGUG壮态,我想验证一下
bluebohe 2003-12-20
  • 打赏
  • 举报
回复
debug窗口中
sxslyy 2003-12-20
  • 打赏
  • 举报
回复
TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态。但有一点不同的是: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宏将被忽略。
blvssss 2003-12-19
  • 打赏
  • 举报
回复
一般就象在调试TC程序里用printf一样哟内就可以了啊,不过前者更方便~结果在DEBUG框里,好象不用设置断点吧~~~~~~~~

比如想追踪鼠标单击事件

OnLButtonDown(UINT nFlags, CPoint point){
TRACE("mouse click x=%d,y=%d",point.x,point.y);
}
carbon107 2003-12-19
  • 打赏
  • 举报
回复
TRACE(exp),其中的表达式使用与printf相同的表达方法

注意:不要采用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;
}
}

carbon107 2003-12-19
  • 打赏
  • 举报
回复
比如
static int i=5,j=50;
char szDeb[]="debug string";
TRACE("trace i=%d j=%d\nstring=%s\n",i,j,szDeb);
你在TRACE这句设定断点(按f9), 然后按f5单步执行,你的鼠标点一下你要看的i,j ,sadeb就可以看到结果了

还可以加入到watch里看啊
typhoon20 2003-12-19
  • 打赏
  • 举报
回复
结束程序后在debug窗口中
可以看到结果

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧