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, die den folgenden Code enthält, öffnen ein eigenes Konsolenfenster:

{$APPTYPE CONSOLE}

So erstellen Sie eine neue Delphi-Konsolenanwendung:

  1. Klicken Sie auf Datei > Neu > Weitere > Delphi-Projekte.
  2. Doppelklicken Sie 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. Klicken Sie auf Datei > Neu > Weitere > C++Builder-Projekte, und doppelklicken Sie auf Konsolenanwendung. Das Dialogfeld Neue Konsolenanwendung (C++) wird geöffnet.
  2. Wählen Sie den Quelltyp (C oder C++) für das Hauptmodul des Projekts aus, oder aktivieren Sie Angabe der Projektquelle, und geben Sie die bereits vorhandene Datei an, die eine main- oder winmain-Funktion enthält.
  3. Geben Sie für C++ in der Gruppe Ziel-Framework den Anwendungstyp an, wenn Ihre Anwendung visuelle Komponenten anzeigen soll:
  4. Geben Sie für C++ in der Gruppe "Ziel-Framework" den Anwendungstyp an, wenn Ihre Anwendung visuelle Komponenten anzeigen soll:
    • FireMonkey: Zum Erstellen einer FireMonkey-Anwendung
    • VCL: Zum Erstellen einer VCL-Anwendung
    • Keine: Ein Standard-Framework
    Hinweis: 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.

  1. Neue Konsolenanwendung
  2. 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