b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

printf, TRACE, OutputDebugString有什么区别?

电脑杂谈  发布时间:2016-05-25 20:13:28  来源:网络整理

你是否正在寻找关于outputdebugstring的内容?让我把最高级的东西奉献给你:

本版等级:

本版专家分:60

结帖率:98.71% 蓝花 2006年11月 Java大版内专家分月排行榜第三

楼主 发表于: 2013-06-06 12:37:40

在vs2008下F5跑程序,如果printf,TRACE,outputdebugstring大量使用这些东西的话,
要写文字到调试器里面,会很慢.
像TRACE的话,Release版,直接运行Ctrl+F5,则不会写文字到调试器里面.
但这个好像是mfc的,如果不想链接mfc的话,outputdebugstring是比较好的选择..
但不确定outputdebugstring是否跟TRACE一样,只有在debug下,或者在vs2008下才会写文字到调试器里面..
如果直接运行程序的话,是不是就跳过这些代码了.

分享到:

| 举报 |

编辑 删除

管理

回复次数:3

本版等级:

本版专家分:8914

结帖率:100%

得分:15 回复于: 2013-06-06 13:08:53

TRACE是OutputDebugString的封装,如果定义了_DEBUG才Output,而如果直接调用outputdebugstring,无论如何都会调用,但是进入这个函数后,他会判断程序是否在调试状态,如果是,就和调试器通信输出字符,如果不是,就什么也不做直接返回.还有更复杂的情况就不讨论了.
printf是进程内的,outputdebugstring涉及进程间的通信.

| 举报 |

编辑 删除

管理

oyljerry 本版等级:

本版专家分:409179

结帖率:100% 榜眼 2009年 总版技术专家分年内排行榜第二
2005年 总版技术专家分年内排行榜第二

银牌 2009年7月 总版技术专家分月排行榜第二
2009年3月 总版技术专家分月排行榜第二
2009年1月 总版技术专家分月排行榜第二
2005年7月 总版技术专家分月排行榜第二
2005年5月 总版技术专家分月排行榜第二
2005年3月 总版技术专家分月排行榜第二

优秀版主 优秀小版主
2015年8月优秀小版主
2015年9月优秀小版主
2015年5月优秀小版主
2015年2月论坛优秀版主

更多勋章

得分:10 回复于: 2013-06-06 13:31:00

outputdebugstring是把Log达到DebugView,不管什么版本都可以显示,一般Driver等会用这个方式来分析问题等

| 举报 |

编辑 删除

管理

本版等级:

本版专家分:12472

结帖率:0%

得分:15 回复于: 2013-06-06 22:57:28

printf很慢,console输出都涉及到与smss.exe的通讯,这是个LPC通讯并且是同步操作,会影响线程的执行
debug版本的TRACE是对outputdebugstring的封装,写入系统的调试输出缓冲区,只是TRACE在release中被屏蔽

| 举报 |

编辑 删除

管理

以上就是关于outputdebugstring的全部内容,相信你一定会非常满意,。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-6302-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...