Konsolenanwendungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Anwendungen erstellen

Konsolenanwendungen sind 32-Bit-Programme, die in einem Konsolenfenster ohne grafische Oberfläche auf einer Zielplattform ausgeführt werden. Diese Anwendungen benötigen in der Regel wenig Benutzereingaben und verfügen über einen begrenzten Funktionsumfang. Obwohl in Konsolenanwendungen keine visuellen Komponenten angezeigt werden können, sind alle Typen und Funktionen der RTL (Laufzeitbibliothek) in einer Konsolenanwendung einsetzbar.

Alle Anwendungen, deren Code

 {$APPTYPE CONSOLE}

enthält, öffnen ein eigenes Konsolenfenster.

So erstellen Sie eine neue Delphi-Konsolenanwendung:

  1. Wählen Sie Datei > Neu > Weitere > Delphi-Projekte.
  2. Doppelklicken Sie im Dialogfeld Objektgalerie auf Konsolenanwendung.

Die IDE erstellt eine Projektdatei für diesen Quelldateityp und zeigt den Quelltext-Editor an.

So erstellen Sie eine neue C++-Konsolenanwendung:

  1. Wählen Sie Datei > Neu > Weitere > C++Builder-Projekte, und doppelklicken Sie im Dialogfeld Objektgalerie auf Konsolenanwendung. Der Experte Neue Konsolenanwendung (C++) wird geöffnet.
  2. Wählen Sie den Quelltyp (C oder C++) für das Hauptmodul des Projekts, oder aktivieren Sie Angabe der Projektquelle, und geben Sie eine bereits vorhandene Datei an, die eine main- oder winmain-Funktion enthält.
  3. Wenn Ihre C++-Konsolenanwendung visuelle Komponenten verwenden soll, wählen Sie das Ziel-Framework: FireMonkey oder VCL. Obwohl in Konsolenanwendungen keine visuellen Komponenten angezeigt werden können, kann eine Konsolenanwendung visuelle Dateien einer Bibliothek (z.B. Symbole, Bitmaps, Video usw.) verarbeiten. Falls Sie beispielsweise im Experten nicht angeben, dass Sie die VCL verwenden möchten, können Sie keine VCL-Klassen in der Anwendung verwenden. Wenn Sie dies dennoch versuchen, werden Linker-Fehler produziert. Der Wert für das Standard-Framework lautet "Keine".
  4. Klicken Sie auf OK.

Die IDE erstellt eine Projektdatei für diesen Quelldateityp und zeigt den Quelltext-Editor an.

Konsolenanwendungen müssen alle Exceptions behandeln

Bei Konsolenanwendungen müssen Sie sicherstellen, dass keine Exceptions außerhalb des Gültigkeitsbereichs des Programms auftreten. Ansonsten öffnet das Betriebssystem bei Programmende ein Dialogfeld mit Exception-Informationen.

C++-Konsolenanwendungen sollten alle Exceptions behandeln, damit die Zielplattform nicht versucht, ein Dialogfeld bei der Ausführung der Konsolenanwendung anzuzeigen. Weitere Informationen finden Sie unter Exception-Behandlung in C++Builder.

Beispielsweise sollte Ihre Delphi-Anwendung eine Exception-Behandlung wie im nachfolgenden Beispiel beinhalten:

 
 program ConsoleExceptionHandling;
 {$APPTYPE CONSOLE}
 
 uses
   SysUtils;
 
 procedure ExecuteProgram;
 begin
   // Program does something
   raise Exception.Create('Unforeseen exception');
 end;
 
 begin
   try
     ExecuteProgram;
   except
     // Handle error condition
     WriteLn('Program terminated due to an exception');
     // Set ExitCode <> 0 to flag error condition (by convention)
     ExitCode := 1;
   end;
 
 end.

Beenden der Konsolenanwendung

Konsolenanwendungen können folgendermaßen beendet werden:

  • Durch Klicken auf die Schaltfläche X (Schließen).
  • Mit der Tastenkombination Strg+C.
  • Mit der Tastenkombination Strg+Pause.
  • Durch Abmelden.

Verwenden Sie zur Behandlung der Beendigungsanforderung durch den Benutzer die Windows-API-Funktion SetConsoleCtrlHandler. Je nach gewählter Methode wird die Anwendung evtl. erfolgreich geschlossen, der Prozess nicht sauber beendet und der finalization-Abschnitt nicht ausgeführt.

Siehe auch