zoukankan      html  css  js  c++  java
  • DEBUGMSG [Daliy APIs]

    DEBUGMSG 

    该宏用于有条件地输出调试信息  

    原型: 

       DEBUGMSG (Condition, Printf_expr)

    说明: 

       第一个参数为布尔值,决定消息是否被输出。TRUE:输出,FALSE:不输出。

       第二个参数类似于printf函数。注意:该参数必须括在括号中 。参数将被传递到 NKDbgPrintf 函数中。

       在Wince或WM开发中要记住,DEBUGMSG的第二个参数的格式控制(Format control)为UNICODE字符,也就是下面例子中被TEXT包含的部分,它的形式类似于printf传参的形式。

    下面是MSDN上的例子:

    1. DEBUGMSG(TRUE, (TEXT("Testing item count against maximum %u\r\n"), 
    2.          dwMaxNumberOfItems));
    3. DEBUGMSG(dwCurrentNumberOfItems >= dwMaxNumberOfItems,
    4.          (TEXT("Invalid item count! Found %u, expected less than %u\r\n"),
    5.          dwCurrentNumberOfItems, dwMaxNumberOfItems));

    输出为:

      Testing item count against maximum 68

      Invalid item countFound 343, expected less than 68  

    再看看下面这个例子:

    1. char szOut[] = "Hello, DEBUGMSG";
    2. DEBUGMSG(TRUE, (TEXT("%s\n"), szOut));

    输出为:

    Ч›HⱯ䐠䉅䝕…d\uc1G  

    发现输出的为乱码,这是为什么呢? 因为格式控制为UNICODE字符,所以传入的字符或字符串型条件参数也要为UNICODE字符,如下:

    1. TCHAR szWOut[20] = {0};
    2. MultiByteToWideChar(CP_ACP, 0, szOut, -1, szWOut, 20);
    3. DEBUGMSG(TRUE, (TEXT("%s\n"), szWOut));

    输出为:

    Hello, DEBUGMSG 

    一切都正确了。

    Good Luck! 

     
  • 相关阅读:
    Chrome调试工具常用功能
    把读取sql的结果写入到excel文件
    Android逆向破解:Android Killer使用
    鸭子类型和猴子补丁
    Scrapy同时启动多个爬虫
    命令注入
    理解RESTful架构
    程序员需要谨记的九大安全编码规则
    10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员
    代码审计:是安全专家都应该掌握的技能
  • 原文地址:https://www.cnblogs.com/Lisen/p/1648025.html
Copyright © 2011-2022 走看看