你是否正在寻找关于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年 总版技术专家分年内排行榜第二得分: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
总是在说甲午