2011-02-02 14 views
13

Recentemente ho dovuto apportare alcune modifiche in alcuni codici Delphi. Quindi ho alcune domande di base:Come utilizzare OutputDebugString per stampare un messaggio che si trova in una variabile stringa?

  1. Come faccio ad inviare alla console?
  2. Come si esegue l'output sulla console con fx, una variabile stringa?

Ho iniziato a utilizzare OutputDebugString, ma non ho potuto farlo funzionare con una variabile.

+0

Quando si dice "output in console" si sta effettivamente sviluppando un'app per console o si desidera stampare l'output di debug? – Tony

+0

È un'applicazione con una GUI. Voglio solo scrivere nel registro eventi per il debug delle variabili come sono abituato a fx. Giava. –

+4

Vedi anche: http://stackoverflow.com/questions/4421042/how-can-i-write-to-console-window-for-debugging –

risposta

21

È possibile scrivere una funzione wrapper per gestire le variabili passate a OutputDebugString in attesa di un PChar.

Qualcosa di simile:

procedure DebugMsg(const Msg: String); 
begin 
    OutputDebugString(PChar(Msg)) 
end; 

C'è un punto di riferimento utile per il debug di tecniche here.

E se il tuo Delphi è un po 'arrugginito c'è il sempre utile sito Delphi Basics. Lo uso molto :)

+0

Questo ha fatto il trucco. Grazie compagno! –

0

Se si dispone di un'applicazione console, è sufficiente utilizzare le funzioni globali write() e writeln(). Se si dispone di un'applicazione GUI e si desidera creare una finestra della console separata, le cose diventano complicate (this article guiderà l'utente attraverso il processo, sebbene sia in C++).

+0

Può controllare "generare un'applicazione console" nelle opzioni del linker. –

+0

È anche possibile reindirizzare WriteLn in modo che possiate ad es. utilizzare un modulo con un campo memo in esso per visualizzare qualsiasi cosa passato a Write() o WriteLn() –

3

Oltre alle 2 risposte ottenute su OutputDebugString() e WriteLn(), per il debug c'è una soluzione migliore: CodeSite di Raize Software (vedere http://www.raize.com/DevTools/CodeSite/Default.asp).

Se si dispone di Delphi XE, questo dovrebbe già avere una versione ridotta di CodeSite.

Problemi correlati