http://www.cnblogs.com/NorthCan/archive/2011/07/14/2106247.html
1 DEBUGMSG
DEBUGMSG (
Condition,
Printf_expr
)
|
第1个参数决定是否打印,第2个参数是打印内容。
例:
DEBUGMSG(TRUE, (TEXT(
"Testing item count against maximum %u \r\n"
),
dwMaxNumberOfItems));
|
这个函数在Debug模式下起作用,在Release模式下不工作。
值得一提的是,wince工程通常要编译为Release版本,但又同时希望关注一下个别驱动的调试信息。则可以在所关心的驱动文件中加入如下语句,DEBUGMSG又可以工作了。
#undef DEBUGMSG
#define DEBUGMSG(x,s) DEBUGMSG(1,s)
|
2 RETAILMSG
RETAILMSG (
Expression,
Message
)
|
第1个参数决定是否打印,第2个参数是打印内容。
例:
RETAILMSG(TRUE, (TEXT(
"Testing item count against maximum %u \r\n"
),
dwMaxNumberOfItems));
|
这个函数在Debug和Release模式下都可以打印出调试信息。不过如果PB工程的"Build option"中选中"Enable ship build",则RETAILMSG函数就不会打印信息了。
3 NKDbgPrintfW
其实前两个函数的实现,都是通过调用NKDbgPrintfW来完成的。
void
WINAPIV NKDbgPrintfW(
LPCWSTR
lpszFmt,
);
|
这个函数在Debug和Release模式下都可以打印出调试信息。
例:
NKDbgPrintfW(TEXT(
"Prints a string to the debug output stream.\n"
));
|
一般希望只在Debug模式下打印调试信息时用DEBUGMSG。在Debug和Release模式下都打印调试信息用RETAILMSG。在OAL中打印调试信息用NKDbgPrintfW。不过上述三个函数能够使用的前提是wince的BSP实现了“打印串口”。