E
visual studio hat einen wirklich guten eingebauten debugger...
Das stimmt. Man kann mit TRACE(...) bestens Abläufe und Variablen-Werte verfolgen. In der Releaseversion werden die TRACE-Anweisungen anschließend einfach übergangen.
Neben TRACE gibt es noch die speziellen Makros TRACE0, TRACE1, TRACE2 und TRACE3:
TRACE0( format-string )
TRACE1( format-string, var1 )
TRACE2( format-string, var1, var2 )
TRACE3( format-string, var1, var2, var3 )
Beim Einsatz von Unicode sind die Makros TRACE0, TRACE1, TRACE2 und TRACE3 einfacher zu verwenden als TRACE, da in diesem Fall _T(...) nicht notwendig ist.
Beispiele:
BOOL CMyApplication :: InitInstance()
{
TRACE0("CMyWindow soll nun auf dem Heap erstellt werden.\n");
TRACE1("m_pMainWnd: %X\n", m_pMainWnd);
m_pMainWnd = new CMyWindow;
TRACE0("CMyWindow wurde auf dem Heap erstellt.\n");
TRACE1("m_pMainWnd: %X\n", m_pMainWnd);
m_pMainWnd ->ShowWindow( m_nCmdShow );
TRACE0("ShowWindow(...) wurde ausgeführt.\n");
return TRUE;
}
oder
m_pMainWnd = new CMyWindow;
TRACE2("Style: %d, ExStyle: %d \n", m_pMainWnd->GetStyle(),
m_pMainWnd->GetExStyle() );
Damit einfach die Variable im switch/case-Zweig verfolgen.