DEBUGMSG - [Daliy APIs]
DEBUGMSG
该宏用于有条件地输出调试信息
原型:
DEBUGMSG (Condition, Printf_expr)
说明:
第一个参数为布尔值,决定消息是否被输出。TRUE:输出,FALSE:不输出。
第二个参数类似于printf函数。注意:该参数必须括在括号中 。参数将被传递到 NKDbgPrintf 函数中。
在Wince或WM开发中要记住,DEBUGMSG的第二个参数的格式控制(Format control)为UNICODE字符,也就是下面例子中被TEXT包含的部分,它的形式类似于printf传参的形式。
下面是MSDN上的例子:
- DEBUGMSG(TRUE, (TEXT("Testing item count against maximum %u\r\n"),
- dwMaxNumberOfItems));
- DEBUGMSG(dwCurrentNumberOfItems >= dwMaxNumberOfItems,
- (TEXT("Invalid item count! Found %u, expected less than %u\r\n"),
- dwCurrentNumberOfItems, dwMaxNumberOfItems));
输出为:
Testing item count against maximum 68Invalid item count! Found 343, expected less than 68
再看看下面这个例子:
- char szOut[] = "Hello, DEBUGMSG";
- DEBUGMSG(TRUE, (TEXT("%s\n"), szOut));
输出为:
ЧHⱯ䐠䉅䝕 d\uc1G
发现输出的为乱码,这是为什么呢? 因为格式控制为UNICODE字符,所以传入的字符或字符串型条件参数也要为UNICODE字符,如下:
- TCHAR szWOut[20] = {0};
- MultiByteToWideChar(CP_ACP, 0, szOut, -1, szWOut, 20);
- DEBUGMSG(TRUE, (TEXT("%s\n"), szWOut));
输出为:
Hello, DEBUGMSG
一切都正确了。
Good Luck!
posted on 2010-01-14 20:09 listenlisten 阅读(1114) 评论(1) 编辑 收藏 举报