[C]benutzer oberfläche

mike4004

Erfahrenes Mitglied
Hi

ich hätte eine frage unzwar beschäftige ich mich seit kurzem mit GUI' s und jetzt wollte ich wissen mit welchen Oberflächen die Programme wie Firefox und Photoshop arbeiten denn für die GTK..... braucht man ja die Bibleotheken wie schauts da mit Firefox und co aus wie wird das dort gemacht denn ich bin noch bei keinem größeren Prog gefragt worden ob ich die Runtime auch mit installieren will.

mfg mike4004
 
Also es gibt da verschiedenste Möglichkeiten. Neben C/C++ Lösungen gibt es beispielsweise unter Windows häufig Delphi, das eingesetzt wird. oder unter Java das SWT (Standard Widget Toolkit). Dort werden gleichfalls native Libs angesprochen, wobei es darauf ankommt, ob Du diese Libs bereits auf dem System installiert hast. Für SWT brauchst Du auf jeden Fall eine explizite dll unter Windows.
Wenn Du Benutzeroberflächen unter C/C++ entwickeln möchtest, fallen mir folgende Möglichkeiten ein:
  • Qt -- Vorteil ist das plattformunabhängige Entwickeln, so dass die Programme auch nativ unter Linux und MacOS X laufen. Allerdings müssen die Programme unter GPL gestellt werden, wenn Du kein Geld für die Qt Lizenz berappen willst.
  • GTK -- ebenfalls plattformunabhängig. Hier musst Du aber auch unter Windows entsprechende Libs installieren (vgl. Gimp)
  • wxWidgets -- auch hier Plattformunabhängigkeit. Kenne aber sonst nicht viel darüber.
  • MFC -- Microsoft Foundation Classes für Visual Studio. Läuft halt nur unter Windows.
  • VCL -- so heißt glaube ich die Lösung von Borland als Alternative zur MFC.
Die MFC soll wohl nicht aktiv weiterentwickelt werden, da Microsoft zunehmend auf .NET setzt (und damit auch verstärkt auf C#). Dann muss man noch anmerken, dass ein Framework wie Qt nicht einfach nur eine GUI erzeugen kann, sondern mit enorm viel zusätzlichen Klassen aufwartet, beispielsweise zur Netzwerkprogrammierung oder XML- oder Datenbank-Verarbeitung etc. Das ist dann schon sehr mächtig.

Zu Deiner eigentlichen Frage bezüglich der Bibliotheken. Ich bin da kein Experte, aber ich denke die Möglichkeit beteht immer in folgenden drei Varianten: entweder Du linkst die benötigten Libs statisch mit in Dein Programm. Das lässt das Programm natürlich anwachsen, ist dafür aber immer lauffähig, allerdings nicht gegen etwaige Sicherheitslücken geschützt, die in den Libs im Laufe der Zeit entdeckt werden. Zweitens kannst Du die benötigten Libs einfach mitliefern. Das war unter der DLL-Hell unter Windows gemeint, wenn von einer Bibliothek massenweise verschiedene Versionen auf einem Rechner auftauchten. Die dritte Möglichkeit ist unter Linux die populärste, nämlich auf dynamische Bibliotheken zu setzen. So laufen die ganzen Qt libs unter KDE bereits und brauchen nicht extra nachgeladen zu werden. Sie können außerdem bei Aktualisierungen einfach ausgetauscht werden und alle Programme, die darauf aufsetzen, profitieren davon. Nachteil ist, dass Du dümmstenfalls eine Latte von Abhängigkeiten bekommst und der Anwender viele libs nachinstallieren muss. Beispielsweise auch ein Problem, wenn ein Gnome Benutzer ein KDE Programm benutzen möchte.

Aber da ist auch einiges Halbwissen dabei. Vielleicht kann ja jemand kompetentes noch ergänzend oder korrigierend eingreifen.
 
Hi

danke sehr für die hilfe.

hatte einer eine ahnung in welcher Sprache der Photoshop gemacht wurde und mit welcher gui er arbeitet.

mfg mike4004
 
Ich habe weder Windows noch Photoshop hier, aber falls Du das hast, könntest Du mal mit einem Hex-Editor reinschauen. Ich erinnere mich, dass wir mal bei einem Programm dort zu sehen bekamen, dass es mit Delphi erstellt wurde. Ich könnte mir vorstellen, dass es dort auch ähnlich markante Stellen durch Visual Studio oder von Borland geben könnte. Ich würde ins Blaue tippen, dass das doch recht hochperformante Photoshop, welches ja auch unter Mac OS X (PowerPC und Intel) läuft, nicht mit Delphi, sondern eher mit C++ erstellt worden sein müsste. Mehr kann ich aber nicht spekulieren ...
 
Zurück