OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调试信息输出到编译器的输出窗口,还可以用DbgView(本机或TCP远程)这样的工具查看,这样就可以脱离编译器了。

OutputDebugString 默认只能输入一个参数,不能像printf那样格式化输出,下面改造成类似printf函数的输出方式。

#include <windows.h>
#include <stdio.h>
//#include <stdlib.h>
#include <stdarg.h>#define IS_USE_OUTPUT_DEBUG_PRINT   1#if  IS_USE_OUTPUT_DEBUG_PRINT #define  OUTPUT_DEBUG_PRINTF(str)  OutputDebugPrintf(str)
void OutputDebugPrintf(const char * strOutputString, ...)
{
#define PUT_PUT_DEBUG_BUF_LEN   1024char strBuffer[PUT_PUT_DEBUG_BUF_LEN] = { 0 };va_list vlArgs;va_start(vlArgs, strOutputString);_vsnprintf_s (strBuffer, sizeof(strBuffer) - 1, strOutputString, vlArgs);  //_vsnprintf_s  _vsnprintf//vsprintf(strBuffer,strOutputString,vlArgs);va_end(vlArgs);OutputDebugStringA(strBuffer);  //OutputDebugString    // OutputDebugStringW}
#else
#define  OUTPUT_DEBUG_PRINTF(str)
#endif

使用实例:

OutputDebugPrintf("DEBUG_INFO | %d %s",600019,"hello");

然后在 DbgView 设置一个过滤:DEBUG_INFO,抓取固定的输出。

----------------------------------------------------------------------------------------------------------------------

Unicode模式下,OutputDebugString要求一个 wchar_t 而不是char,而sprintf则需要char参数,那我们是不是一定要通过字符转换解决问题呢?

答案就是 OutputDebugStringA()

原因:Unicode模式,OutputDebugString会变成OutputDebugStringW。如果想用ANSI版本的,直接写OutputDebugStringA,或者设置工程属性,使用MBCS的编码集。

----------------------------------------------------------------------------------------------------------

处理“error C2220: warning treated as error - no object file generated”错误"

产生原因为:有些Project编译选项中,Treat Warnings As Errors(把警告看作错误来处理)选项开启了。

只要把此选项关闭,就可以正常编译了。

在Solution中,选择工程,右键菜单中选择“Properties”。弹出的属性框中,将Configuration选择“All Configurations”,选择“C/C++/General/”,右侧Treat Warnings As Errors值从原来的“Yes(/WX)”改为“No(/WX-)”。

点击确定,再重新编译,即可。

OutputDebugString 格式化输出函数 OutputDebugPrintf相关推荐

  1. sprintf() 格式化输出函数

    sprintf() 格式化输出函数 功能: 函数sprintf()用来作格式化的输出. 用法: 此函数调用方式为int sprintf(char *string,char *format,arg_li ...

  2. C 语言格式化输出函数中常用的格式符号

    在之前介绍输入输出函数的文章中,有提到格式化输入输出函数都有包含一种特殊的符号--格式符号. 那篇文章中关于格式符号也只是一笔带过,没有进行深入挖掘.本篇文章主要对输出函数(printf)中的一些常用 ...

  3. Python基础之格式化输出函数format()功能详解

    之前发过一篇文章:Python基础之常用格式化输出字符详解 但是呢,有时候我们需要用到多个%的时候,用这个就很不方便了,比如数错%数量或者一 一对应的时候... 这里补充一个字典方式的格式化输出字符的 ...

  4. C语言编程之格式化输出函数printf()说明

    格式化字符串,是一些程序设计语言在格式化输出API函数中用于指定输出参数的格式与相对位置的字符串参数,例如C.C++等程序设计语言的printf类函数,其中的转换说明用于把随后对应的0个或多个函数参数 ...

  5. Python基础之格式化输出函数format()详解

    但是呢,有时候我们需要用到多个%的时候,用这个就很不方便了,比如数错%数量或者一 一对应的时候... 这里补充一个字典方式的格式化输出字符的****办法 print("double abc ...

  6. c语言程序输出s是什么,C语言中printf格式化输出函数

    int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

  7. 【python--程序】printf格式化输出函数

    前言 众所周知,python中print函数可以打印出变量的内容. but正如世上没有绝对完美的事物,print函数还是有一定的缺陷. 当打印特别长的列表和字典格式数据时,输出的内容的美观就不敢恭维了 ...

  8. 初学Python之利用map编写姓名格式化输出函数

    利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.例如输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart'] ...

  9. c语言中用于格式化输出的函数,C语言中格式化输入输出函数(转)

    1.1.1 格式化输入输出函数 一.printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.printf()函数的调用格 ...

最新文章

  1. 动态子类化CComboBox以得到子控件EDIT及LISTBOX
  2. ubuntu中minicom安装和使用
  3. 使用System.Transactions
  4. JQuery闭包,插件的写法
  5. 思科设备路由器间IPsec ×××实现私网之间通信实战
  6. libcurl上传文件
  7. microsoft符合服务器加载符号的解决方案
  8. 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
  9. ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
  10. Reaction to 构造之法 of Software Engineering From The First Chapter toThe Fifth Chapter
  11. 尼康 Nikon Capture nx2
  12. ERD-ONLINE 2.0.3 免费在线数据库建模工具 正式发布
  13. 中国农业大学计算机考研参考书目,中国农业大学(专业学位)计算机技术考研参考书目...
  14. 几何光学学习笔记(30)-6.5光通量和光亮度在光学系统中的传递、像面光照度
  15. excel里的一个单元格怎样拆分成几个单元格?
  16. 分别计算二维数组主对角线元素与辅对角线元素的和。
  17. CAD梦想画图中的的“绘图工具——绘线命令”
  18. AI“看片儿”比人快,鉴黄师却说不靠谱?
  19. C 语言编译器 gcc 命令详解
  20. 前端的瑞士军刀:Modernizr.js

热门文章

  1. 益聚星荣:辣味赛道还有多少空间留给卫龙?
  2. 珍爱生命,远离肥胖,远离过劳死
  3. ESP8266 连接手提电脑创建的TCP服务器不成功
  4. 3700万患者的曙光:第二例艾滋治愈病例或诞生
  5. python怎么快速打括号_三分钟,让你弄清楚Python中函数的括号使用
  6. JavaScript高级程序设计第六章---集合引用类型
  7. AudioRecord 录音和播放的Demo
  8. P2P原理的解释与实现
  9. golang 获取支付宝小程序用户手机号、登录授权、AES解密
  10. 瑞吉外卖软件开发流程