2011-03-15 16 views

Respuesta

22

intente utilizar el DebugHook variables

ReportMemoryLeaksOnShutdown:=DebugHook<>0; 
+1

Y probablemente deshabilite la estúpida advertencia asociada con 'DebugHook',' {$ WARN SYMBOL_PLATFORM OFF} ' – jasonpenny

+4

¿Por qué esa advertencia es" estúpida "? Es verdad. –

+0

muchas gracias. – Salvador

24

Si se refiere a "modo de depuración", compilado usando la configuración de depuración de construcción (D2007 +), tendrá el símbolo DEBUG definida, por lo que puede activar el ReportMemoryLeaksOnShutdown incluso cuando se ejecuta ningún cartel con el depurador:

{$IFDEF DEBUG} 
    ReportMemoryLeaksOnShutdown := True; 
{$ENDIF} 

Si desea ejecutar sólo si el depurador está presente, un vistazo a RRUZ answer

+6

+1 Lo hago de esta manera. Detectar el depurador se siente sucio. –

1

que suelen utilizar la función APIIsDebuggerPresent y lo rodean con un cheque de símbolos de depuración por lo que el código no terminan en las versiones de lanzamiento:

{$IFDEF DEBUG} 
    ReportMemoryLeaksOnShutDown := IsDebuggerPresent(); 
{$ENDIF} 

La función ya debe ser declarada en la unidad Windows, si no está utilizando una versión antigua de Delphi y funciona en Windows 2000 y versiones posteriores.

Cuestiones relacionadas