#define THROWEXCEPTION(STREXCEPTION) { / TCHAR sz[256] = {0} ;/ wsprintf(sz,"%s/n/n%s/n%u 行/nLastError : %u/n",/ STREXCEPTION,__FILE__,__LINE__,::GetLastError());/ throw YDebug::YException(sz); }
#define DEBUGMSG(STRDEBUG) { / TCHAR sz[256] = {0} ;/ wsprintf(sz,"%s/n/n%s/n%u 行/nLastError : %u/n",/ STRDEBUG,__FILE__,__LINE__,::GetLastError());/ YDebug::DebugMsgBox(sz);
try { if (GetApp() == NULL) THROWEXCEPTION(_T("YWnd::CreateEx 1 "));
}
catch (YDebug::YException &e) { e.MessageBox(); } catch (...) { DEBUGMSG(_T("CreateEx 1 未知错误")) }
.h
namespace YDebug{ /******************************************************* 模块名: Exception 模块描述: 做成者: tsys2000@gmail.com 做成时间: 2005/11/ *******************************************************/ class YException { public: YException (LPCTSTR msg) : m_msg(msg) {} LPCTSTR GetMessage() const {return m_msg;} void MessageBox(); private: LPCTSTR m_msg; };
template <typename Type> void YsDebugHelper(LPCTSTR str,Type i) { stringstream ss; ss<<"ysay : "<<str<<" $ "<< i << " $"<<endl; OutputDebugString(ss.str().c_str()); }
void YsDebugHelper(LPCTSTR str);
void DebugMsgBox(LPCTSTR str);
void MsgBox(LPCTSTR str);
}
#ifdef _YSDEBUG#define YSTRACE(TYPE,Str,Data) YDebug::YsDebugHelper<TYPE>(Str,Data)#else#define YSTRACE(TYPE,Str,Data)#endif //
#ifdef _YSDEBUG#define YSTRACE2(Str) YDebug::YsDebugHelper(Str)#else#define YSTRACE2(Str)#endif //
.cpp
namespace YDebug{
void YException::MessageBox() {#ifdef _YSDEBUG ::MessageBox (0, GetMessage (),"YSay", MB_OK);#else long t; time(&t); tm *_t = localtime(&t); stringstream str; str<<_t->tm_year<<"_"<<_t->tm_mon<<"_"<<_t->tm_mday<<".txt"; ofstream ss(str.str().c_str(),ios::app); ss<<"-------------------------------"<<"/n"; ss<<GetMessage ()<<endl; #endif }
void YsDebugHelper(LPCTSTR str) { TCHAR buf [250]; ::wsprintf ((LPTSTR)buf, _T("YSay : %s/n"), str ); OutputDebugString(str); }
void DebugMsgBox(LPCTSTR str) {#if _DEBUG ::MessageBox (0, (LPTSTR)str, _T("YS MsgBox"), MB_OK);#endif } void MsgBox(LPCTSTR str) { ::MessageBox (0, (LPTSTR)str, _T("YS MsgBox"), MB_OK); }}
转载请注明 tsys2000@gmail.com