wince打印调试信息
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实现了“打印串口”。