When using
Remarks
The behavior for
Example
The following sample always executes the output statements, regardless of whether you compile with /DDEBUG or /DTRACE.
В | Copy Code |
---|---|
// mcpp_debug_class.cpp // compile with: /clr #using <system.dll> using namespace System::Diagnostics; using namespace System; int main() { Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) ); Trace::AutoFlush = true; Trace::Indent(); Trace::WriteLine( "Entering Main" ); Console::WriteLine( "Hello World." ); Trace::WriteLine( "Exiting Main" ); Trace::Unindent(); Debug::WriteLine("test"); } |
Output
В | |
---|---|
Entering Main Hello World. Exiting Main test |
Example
To get the expected behavior (that is, no "test" output printed for a release build), you must use the #ifdef and #endif directives. The previous code sample is modified below to demonstrate this fix:
В | Copy Code |
---|---|
// mcpp_debug_class2.cpp // compile with: /clr #using <system.dll> using namespace System::Diagnostics; using namespace System; int main() { Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) ); Trace::AutoFlush = true; Trace::Indent(); #ifdef TRACE // checks for a debug build Trace::WriteLine( "Entering Main" ); Console::WriteLine( "Hello World." ); Trace::WriteLine( "Exiting Main" ); #endif Trace::Unindent(); #ifdef DEBUG // checks for a debug build Debug::WriteLine("test"); #endif //ends the conditional block } |