Visual Studio 2010 中win32程序输出调试信息
2013-04-12 22:40
453 查看
在以往控制台程序里,可以在程序中插入printf来显示程序运行状态信息,但是,在VS2010开发win32程序时printf不知道被输出到哪里去了,很不方便。
今天对这个问题进行了一些搜索,结合以下内容,形成一套解决方案。
_myprintf函数可以实现像调用printf一样,输出调试信息,输出的信息在VS的”输出“窗口中显示,支持%d %f %s三种格式,最长输出信息不能超过1024, 应该可以满足调试需求了。
参考:
http://blog.csdn.net/ghostcomputing/article/details/6838276 http://bbs.csdn.net/topics/30365452
今天对这个问题进行了一些搜索,结合以下内容,形成一套解决方案。
_myprintf函数可以实现像调用printf一样,输出调试信息,输出的信息在VS的”输出“窗口中显示,支持%d %f %s三种格式,最长输出信息不能超过1024, 应该可以满足调试需求了。
bool _myprintf(char *fmt, ...) { char buf[1024]={0}; va_list ap; int ival; double dval; char *sval; va_start(ap,fmt); for(char *p = fmt, *pbuf=buf; *p; p++) { if(*p!='%') //如果不是占位符,就按照字面值输出 { *pbuf++ = *p; continue; } switch(*++p) { case 'd': ival=va_arg(ap,int); sprintf(pbuf, "%d",ival); pbuf += strlen(pbuf); break; case 'f': dval = va_arg(ap, double); sprintf(pbuf, "%f", dval); pbuf += strlen(pbuf); break; case 's': for(sval = va_arg(ap, char*); *sval; sval++) { *pbuf++ = *sval; } break; default: *pbuf++ = *p; break; } } WCHAR wsz[1024]; swprintf(wsz, L"%S", buf); OutputDebugString(wsz); return true; }
参考:
http://blog.csdn.net/ghostcomputing/article/details/6838276 http://bbs.csdn.net/topics/30365452
相关文章推荐
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- MFC(win32GUI)程序中显示Dos调试信息.console.显示控制台界面.标准输出.
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息。
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- GUI程序如何使用控制台输出调试信息[zz][MFC调用win32窗口显示调试信息,使用AllocConsole 函数 ]
- MFC,Win32程序向控制台(Console)窗口输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- win32/vc 程序调试信息命令行输出
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
- 在visual studio 2010之中调试带参数的程序
- visual studio 2010 出现问题,不能设置断点调试了,一运行就未响应,然后程序退出
- Linux 程序开发打印 Debug 信息的使用技巧--C语言中几种输出调试信息的方法