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! 

     
  • 相关阅读:
    010 排序: 冒泡 选择
    洛谷 P1540 机器翻译
    洛谷 P1011 车站
    周期串
    2019.03.29 大数据图解
    2019.03.29 算法解读
    2019.03.28 博客反省
    2019.03.27 常用的模块
    2019.03.25 git
    2019.03.25 Ajax三级联动
  • 原文地址:https://www.cnblogs.com/Lisen/p/1648025.html
Copyright © 2011-2022 走看看