Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Debug (Clase) (C++/CLI)

Cuando se utiliza Debug en una aplicación de Visual C++, el comportamiento no cambia entre una depuración y una versión de lanzamiento.

El comportamiento para Trace es idéntico al comportamiento para la clase Debug, pero depende del símbolo TRACE que se defina. Es decir, debe aplicarse #ifdef al código relacionado con Trace para evitar un comportamiento de depuración en una versión de lanzamiento.

ms235216.collapse_all(es-es,VS.110).gifDescripción

El ejemplo siguiente siempre ejecuta las instrucciones de salida, independientemente de que la compilación se realice con /DDEBUG o /DTRACE.

ms235216.collapse_all(es-es,VS.110).gifCódigo

// 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");
}

ms235216.collapse_all(es-es,VS.110).gifOutput

    Entering Main
Hello World.
    Exiting Main
test

ms235216.collapse_all(es-es,VS.110).gifDescripción

Para obtener el comportamiento esperado (es decir, que no se imprima "test" en una versión de lanzamiento), deben utilizarse las directivas #ifdef y #endif. A continuación modificamos el ejemplo de código anterior para mostrar la corrección:

ms235216.collapse_all(es-es,VS.110).gifCódigo

// 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
}

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft