구글


VC6.0에서도 __FUNCTON__ 매크로를 쓰자 ( 소스포함 ) ▶Dev Download

C++ 개발하다보면 trace나 printf 등을 이용해서 Bebug를 할때가 많습니다.. 이때 어떤 class의 어떤 method에서 호출된 trace나 printf인지를 판독하기 위해 코드상에 직접 class와 method의 이름을 입력하게 되죠.. 이런 노가다성 작업을 대신 해 줄수 있는 매크로가 __FUNCTION__, __LINE__, __FILE__ 매크로입니다.

void CTcp_testDlg::OnButton2()
{
     TRACE("IMFONE - CTcp_testDlg::OnButton2::line( 0 )Traced......\n ");
     TRACE("%s:line( %d )Traced...... \n", __FUNCTION__, __LINE__);
}
// Output
// IMFONE - CTcp_testDlg::OnButton2::line( 0 )Traced...... 
// IMFONE - CTcp_testDlg::OnButton2::line( 712 )Traced...... 


근데 불행하게도 가장 중요한 __FUNCTION__ 매크로는 VC6.0 이상에만 지원한다고 되어 있더군요.. -.-;;
이리 저리 개발 사이트를 찾아보다 xtrace라는 __FUNCTION__ 매크로를 구현한 소스가 있길레 테스트 해 보았지만 몇가지 오류가 있어 실행되지 않더군요.. 몇가지 수정을 걸쳐 잘 돌아가끔 처리 해 놓았습니다..

xtrace.c에 있는 아래 APP_NAME은 입맛에 맞게 변경하시면 됩니다.
#define APP_NAME "IMFONE - "

xtrace.h를 stdafx.h에 include 하고 Workspace에 xtrace.h와 xtrace.c를 포함시키면 어디에서나 호출 가능합니다..

소스 : xtrace.zip




덧글

  • eo 2009/07/13 14:48 # 삭제 답글

    감사합니다..
    잘 쓰고 있습니다..
  • houseforce 2010/02/11 07:58 # 삭제 답글

    ㅠ_ㅠ) 감사합니다. 좋은 작업을 하셨네요. 잘 쓰겠습니다.
댓글 입력 영역