TRACE情報を表示する簡単なマクロを書いています。
これは私が使用しているものです、
#ifdef __DEBUG__
#define TRACE { PrintErrorMsg("Trace exception at " __FILE__ "LineNo:"##(__LINE__) "Function: " __FUNCTION__ " " );}
#else
#define TRACE
#endif
これはFILEで機能していますが、 LINEでは機能していないようです。どうすればこれに対処できますか。私はすでに文字列演算子も試しました。これは次のとおりです。
#ifdef __DEBUG__
#define TRACE { PrintErrorMsg("Trace exception at " __FILE__ "LineNo:"#(__LINE__) "Function: " __FUNCTION__ " " );}
#else
#define TRACE
#endif
および parms なしで double parms を使用する場合、ex-__LINE__
または((__LINE__))
この問題にどのように対処できますか?
そして、私はこれを思いつきます、
#ifdef __DEBUG__
#define ERROR_MSG_BUF_SIZE 1024
#define TRACE { char * error_msg_buffer = new char[ERROR_MSG_BUF_SIZE]; \
sprintf(error_msg_buffer,"Trace Exception at file: %s ,Line : %d , Function %s \n",__FILE__,__LINE__,__FUNCTION__);\
PrintErrorMsg(error_msg_buffer );\
delete[] error_msg_buffer;}
#else
#define TRACE
しかし、 sprintf を使用せずに、文字列とトークンの貼り付けだけでやりたいです。何か案が?
#endif
- 前もって感謝します -