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! 

     
  • 相关阅读:
    HDU5343:MZL's Circle Zhou(SAM,记忆化搜索DP)
    动归皆背包——那些做过的背包
    CODEVS 3943 数学奇才琪露诺
    codevs 1540 银河英雄传说
    CODEVS 1004四子连棋
    洛谷1082 同余方程
    洛谷1006 传纸条
    洛谷1508 Likecloud-吃、吃、吃
    洛谷1108 低价购买
    洛谷1156 垃圾陷阱
  • 原文地址:https://www.cnblogs.com/Lisen/p/1648025.html
Copyright © 2011-2022 走看看