GUI mit C++
-
Hallo,
ich wollte Euch nur mal um eine kurze Übersicht bitten, welche verschiedenen Möglichkeiten es bezüglich der GUI Programmierung mit C++ gibt. Ständig fliegen einem Begriffe wie MFC, VCL usw. um die Ohren. Und wer es ganz gut mit mir meint kann mir ja noch ganz kurz mal Vor- und Nachteile erläutern. Ich weiss, solche "Erklärt mir mal" - Fragen sind in Foren nicht gerne gesehen. Vielleicht hat ja trotzdem jemand Lust.
Besten Dank
der maik
-
Das Thema wird hier http://www.c-plusplus.net/forum/viewtopic.php?t=63291 sehr erschöpfend behandelt...
-
Tja, solche GUI-Lib Fragen enden immer in Diskussionen aus, die sich dann über Wochen hinziehen. Und solche Topics gabs schon vielfach.
OK, ich versuche mal eine sachliche und neutrale Übersicht zu geben. Wobei ich sagen muß: es kommt darauf an, was man machen will!
Ist wohl die Antwort die jeder gibt?
Wenn du unter Windows entwickeln willst, und dir alles andere (Unix, Linux usw.) egal ist, geb ich dir einen Tip: benutze ruhig MS-Libraries. Da gibts verschiedene:
MFC: ist wohl die älteste von MS, und entsprechend auch komisch designed. Historisch gewachsen nennt man sowas. Vorteil: es gibt im Netz unendlich viele Controls dafür, die man benutzen kann.
ATL und WTL: Ob sie einfach, schlecht oder gut sind, kann ich nicht sagen. Da ich sie noch nie benutzt habe.
.NET-Framework: Scheint genial zu sein, vorallem für die nächste Windows-Version unumgänglich. Werde mir demnächst "VisualC++ .NET 2003" kaufen und das ganze praktisch ausprobieren.
So, das waren MS-Libs, die natürlich nur unter Windows sinnvoll sind.
Willst du System-unabhängig sein, gibts weitere Möglichkeiten:
wxWidgets: nicht nur für GUIs, sondern für alles zu gebrauchen.
Finde ich die bisher ultimativste Multiplattform-Librarie.
gtkmm: reine GUI-Librarie für Multiplattform. Aber können die anderen bestimmt mehr dazu sagen.
Fazit: ich finde, jeder muß sich das raussuchen, was er pers. für Ansprüche stellt. Ich selbst springe je nach Anwendungsfall von einer Lib zur anderen. Zur Zeit zwischen MFC und wxWidgets.
-
Also ich habe mich für die MFC entschieden da ich das Visual Studio von MS verwende
und werden in Zukunft, dann wohl meine GUIs mit C# machen und den restlichen
Code mit C++ (geht ja dank dem NET Framework).Wenn du aber auch unter anderen Plattformen programmieren möchtest dürfte GTKmm
für dich sehr interressant sein.
-
Ich kann nur zu wxWidgets raten, es ist sehr einfach und sehr mächtig.
-Ausserdem läuft unter nahezu jedem bekannten Betriebssystem.Und wie ja schon in dem alten Thread stand, stirbt die MFC sowie die VCL.
.net, java und Crossplattformlibrarys sind im kommen.Mit ein bisschen Glück kommt noch ein guter RAD-Designer von Borland der für den Durchbruch sorgen könnte.
www.wxwidgets.org
(Wenn du unter Windows entwickelst, verwende am besten Dev-C++)MfG Max
-
Hi,
und erstmal vielen Dank für Eure vielen Tipps. Zwei Fragen habe ich allerdings noch: Ich arbeite mit Visual C++.Net und habe ein kleine GUI mittels Win32 Project geschrieben. In welche Kategorie fällt dies den? MFC und ATL, was ihr ja auch als Bsp. genannt habt, gibt es ja noch extra.
Artchi hatte als eine Alternative das .NET-Framework genannt. Als Beispiel wäre hier ja C# zu nennen. Welche Möglichkeiten gibt es denn innerhalb von C# für GUIs?vielen dank
mfg
der maik
-
Hem, du hast ein Win32-Projekt angelegt, was ja sehr allgemein ist. Da hast du halt keines der Frameworks benutzt, sondern lowlevel Win32-API (C-Funktionen).
Das .NET-Framework hat aber nichts speziell mit C# zu tun. Bitte verwechsel da nichts. Du kannst ja auch in C++ das .NET benutzen, besser gesagt kann man mit jeder Sprache auf das .NET zugreifen. C# ist einfach nur eine weitere Sprache von vielen. Wenn du eh schon VC++.NET hast, solltest du dich mit Managed-C++ befassen. Managed-C++ kann nämlich aufs .NET-Framework zugreifen. Du kannst sogar Unmanaged-C++ (also das "konventionelle" C++) und Managed-C++ innerhalb eines Sourcecodes mischen - kein Problem.
Unmanaged-C++ für Performance und Managed-C++ für die .NET-Vorteile (z.B. GUI). Da bleiben einem alle Freiheiten unter der Windows-Plattform.