请问一下,debug版中,有什么方法能禁止掉TRACE吗?,谢谢

datuhao 2005-12-06 03:37:13
rt
...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
datuhao 2005-12-06
  • 打赏
  • 举报
回复
结帖:)
datuhao 2005-12-06
  • 打赏
  • 举报
回复
多谢各位

已经解决。

方法1:
在stdafx.h中加下面的语句,用CLOSE_TRACE_ON_DEBUG宏作为我们自己的TRACE开关
中间那段我直接从系统文件中定义Release版的TRACE宏处拷过来的。

#ifdef CLOSE_TRACE_ON_DEBUG

#ifdef _DEBUG

#ifdef TRACE
#undef TRACE
inline void AFX_CDECL AfxTrace(LPCTSTR, ...) { }
#define TRACE 1 ? (void)0 : ::AfxTrace
#endif ///TRACE

#endif ///_DEBUG

#endif ///CLOSE_TRACE_ON_DEBUG

不过这个方法始终还是不是很爽,因为要依赖编译顺序,查了半天也没从微软官方查到有什么更好的方法

方法2,在最开始写代码时不要直接使用微软的TRACE,我们自己再对TRACE封装一下,再定义自己的开关,就很容易随时关闭和打开TRACE语句了
hjunxu 2005-12-06
  • 打赏
  • 举报
回复
在程序里面临时的把这个宏改掉,以后去掉好了。

#undef TRACE
然后重新定义一个什么都不做的。
#define TRACE....

试一下吧,不一定可以。

strous 2005-12-06
  • 打赏
  • 举报
回复
我有一个问题与此类似,

每次编译的时候,会TRACE很多窗口鼠标消息等,把我想TRACE的信息都淹没了

不过倒没感觉性能有什么影响,

该怎么才能关掉那些输出消息的TRACE呢?

我都不知道这些语句写在哪儿的?
38062708 2005-12-06
  • 打赏
  • 举报
回复
TRACE 编译器本身不占很多资源的,要么是代码中TRACE太多,要么是开发用的机器太烂
shmily1280 2005-12-06
  • 打赏
  • 举报
回复
奇怪的问题...
不想看它就注释掉好了..
lzzqqq 2005-12-06
  • 打赏
  • 举报
回复
TRANCE是个宏定义,不知道用#undefine能不能取消掉试试吧.
datuhao 2005-12-06
  • 打赏
  • 举报
回复
因为开了很多线程,很多地方有Trace输出,cpu占用率太高,我是用windgb来调试,attch上去后,基本上都在那里输出trace的内容了,根本没办法调试,机器动都动不了。
快乐鹦鹉 2005-12-06
  • 打赏
  • 举报
回复
TRACE对你有什么影响么?
HelloIvan2005 2005-12-06
  • 打赏
  • 举报
回复
为什么要去掉呢?这些工具都是为了方便调试,如果都不需要的话,那就直接编译成Release版本的不就行了?

16,550

社区成员

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

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

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