包裝OutputDebugString成為printf style的介面

下面的程式將OutputDebugString包裝成printf介面,有需要的人可以自行copy回去使用,這對於輸出Debug資訊上有一定程度的幫助,另外對於看Debug message的工具,個人推薦使用DbgView ,目前最新版本已經可以在Vista 32/64-bit平台下面使用。實在是一個非常方便的工具。

#ifdef DBG  

void __cdecl DbgPrint(LPCTSTR format, ...)  
{  
 static TCHAR DbgMsg[DBG_MAX_BUFFER_SIZE];  
 size_t len;  
 TCHAR *p = DbgMsg;  
 va_list args;  

 va_start(args, format);  
 StringCchVPrintf(p, sizeof(DbgMsg) - 1, format, args);  
 StringCchLength(DbgMsg, sizeof(DbgMsg) - 1, &len);  
 p += len;  
 va_end(args);  

 *p++ = '\r';  
 *p++ = '\n';  
 *p = '\0';  

 OutputDebugString(DbgMsg);  
}  

#endif // DBG  
comments powered by Disqus