Programm für eine GUI "offen" lassen

Guten Tag,

bisher haben wir in der FH nur Konsolenprogramme geschrieben. Ich wollte mal wissen, ob und wie man generell ein Konsolenprogramm schreiben kann, so das man später ein gui implementieren kann.

sowas wie bladeenc (ein mp3 encoder) meine ich.
wenn ich das dingen in der konsole oder per batch starte, klappt alles. aber es gibt auch div. tools dafür, die dann eine grafische oberfläche haben.

ich möchte im prinzip das konsolen programm so schreiben, das man später eine gui drauf programmieren kann....

:D

mfg
xh
 
Aufgesetzte GUIs machen meist nichts anderes als das Programm mit bestimmten Parametern aufrufen, den Output entsprechend aufbereitet dem User zu präsentieren und natürlich den Input des Users (z.B. eine via Dialog ausgewählte Datei) als Parameter an das Programm weiterzuleiten.

Eine weitere Möglichkeit sind Shared Libraries, die dann von der GUI und dem Konsolenprogramm gleichermaßen genutzt werden können. Das wäre der sauberste Weg.
 
thxn

danke! werde mir das dann mal im laufe meines studiums anschauen (also privat), da ich keine ahnung habe ob wir sowas lernen werden - aber ich für mich wills lernen ;)

kann ja schon recht hilfreich sein.

thx erstmal...
 
Ich würde dir dafür generell empfehlen, sauber mit Funktionen und Klassen zu arbeiten.

Bei einer WinAPI läuft das am Anfang nämlich darauf hinaus, dass man für jeden Button etc ein Case hat. Also Wenn Button 1 gedrückt wird case 1 ausgeführt. Das Problem ist nun, dass WinAPI's oft SEHR langen code haben (im Vergleich zur Konsole), vor allem wenn sie viele benutzerdefinierte dinge, wie z.B. Menüs oder Reiter haben.
Wenn man dort dann seinen Spaghetti-Code, den man einfach in die main()-Funktion der Konsole geklatscht hat, einbauen will, dann steigt man bei etwas größeren Projekten nicht mehr durch und scollt stundenlang im Code.

Edit: oh, wars't schneller ^^
 
Wenn man in OOP unterwegs ist, ist der Standardweg wohl einfach ein Interface (UI!), fuer das dann verschiedene Implementationen existieren - z.b. als CLI-Client, als GUI, als Web-Interface usw..

Das Programm instanziert irgendwo ("zentral") ein UI-Objekt und spricht es nur ueber das Interface an. Welches UI-Objekt konkret instanziert wird, kann man z.b. per flag oder config-file usw bestimmen.. (ich mach sehr gerne ein -nogui oder sowas rein).

Wirklich aufgesetze GUIs verändern aber den Original-Code nicht. Wie bitmuncher schon sagte, delegieren sie bestimmte Funktionalität einfach an das Kommandozeilen-Programm.
 
Zurück
Oben