Capturar la salida del Debug con OutputDebugString

OutputDebugString() es una API del SO, que permite a tu aplicaciĆ³n hablar con el Debugger. Desde Delphi, cuando generamos un error en el IDE, este empieza ha hacer llamadas al Debugger, enviando un String con la informaciĆ³n del error que se esta generando. Son los tĆ­picos errores o warnings que aparecen en la ventana de Messages.

En este caso, por ejemplo:



En la lƭnea del uses, he aƱadido un uses que no existe. El delphi lo detecta como muestro en la ventana de la izquierda, y esto hace que el IDE empieze a lanzar errores. Estos errores se lanzan a travƩs del Kernel o a travƩs de Win32, y pueden ser capturados.

Como es de esperar, como que esta funciĆ³n es del windows, microsoft tiene una pequeƱa herramienta que es capaz de capturar estos mensajes con una aplicaciĆ³n que se llama DebugView. Esta aplicaciĆ³n la podeis encontrar aquĆ­.

Con el delphi, podemos generar llamadas de este tipo. AquĆ­ os dejo un ejemplo muy sencillo:





procedure TForm1.Button1Click(Sender: TObject);
function FormataFecha(aDateTime: TDateTime): string;
begin
Result := FormatDateTime('dd.mm.yy hh:nn:ss zzz', aDateTime);
end;
var
StartDT : TDatetime;
begin
StartDT := Now;
OutputDebugString(PChar(Format('[%s][%s] %s',
['Funcion', FormataFecha(StartDT),'texto prueba evento Button1Click'])));
end;



Desde el Event Log del Delphi, podemos ver la salida del mensaje que hemos generado:



Con el DebugView, podemos ver la verbose que genera el IDE del Delphi, i capturarlo con la herramienta:



Comments

Popular Posts