Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Trace: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0003 pages from live compare)
 
Line 1: Line 1:
MFC 에서 제공하는  
MFC 에서 제공하는  
~cpp  TRACE
<code>TRACE</code>
매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자.
매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자.
(  
(  
~cpp TRACE
<code>TRACE</code>
매크로가 내부적으로 함수 호출을 하는것 같기는 한데 생각해보면 {{{~cpp TRACE}}} 매크로보다 우리가 정의한 함수를 호출하는게 조금더 오버헤드가 있을것 같다 )
매크로가 내부적으로 함수 호출을 하는것 같기는 한데 생각해보면 <code>TRACE</code> 매크로보다 우리가 정의한 함수를 호출하는게 조금더 오버헤드가 있을것 같다 )
= 함수 body =
= 함수 body =
  #include &lt;iostream&gt;
  #include &lt;iostream&gt;
Line 23: Line 23:
  va_list args;
  va_list args;
  int nBuf;
  int nBuf;
  TCHAR szBuffer[512];
  TCHAR szBuffer&#91;512&#93;;
   
   
  va_start(args, lpszFormat);
  va_start(args, lpszFormat);
Line 38: Line 38:
----
----
[[상식분류]], [[프로그래밍분류]]
[[상식분류]], [[프로그래밍분류]]

Latest revision as of 00:29, 27 March 2026

MFC 에서 제공하는 TRACE 매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자. ( TRACE 매크로가 내부적으로 함수 호출을 하는것 같기는 한데 생각해보면 TRACE 매크로보다 우리가 정의한 함수를 호출하는게 조금더 오버헤드가 있을것 같다 )

함수 body

#include <iostream>
#include <windows.h>
#include <tchar.h>
#include <crtdbg.h>
using namespace std;

#ifdef _DEBUG
#define TRACE Trace
#else
#define TRACE ;
#endif


void _cdecl Trace(LPCTSTR lpszFormat, ...)
{
	va_list args;
	int nBuf;
	TCHAR szBuffer[512];

	va_start(args, lpszFormat);
	nBuf = _vstprintf(szBuffer, lpszFormat, args);

	_ASSERT(nBuf < sizeof(szBuffer));
	//_tprintf(szBuffer);  // 이부분은 console window 에 출력해주는 부분이다.

	OutputDebugString(szBuffer); // debug output window 에 string 출력

	va_end(args);
}
 

상식분류, 프로그래밍분류