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! 

     
  • 相关阅读:
    洛谷P2050 美食节
    洛谷P2150 寿司晚宴
    区间最深LCA
    三层交换机
    VLAN 及 GVRP 配置
    GVRP
    VLAN IEEE802.1Q
    以太网端口技术
    网关与路由器
    Quidway S系列交换机
  • 原文地址:https://www.cnblogs.com/Lisen/p/1648025.html
Copyright © 2011-2022 走看看