Wie gehts weiter nach WinAPI?
-
Ich habe angefangen mich mit WinAPI zu beschäftigen, weil ich wissen wollte, wie eine grafische Oberfläche genau arbeitet und was im Hintergrund alles abläuft, um sozusagen erstmal ein paar Grundlagen zu haben. Doch ich habe auch mitbekommen, dass es effektivere Wege zum programmieren von GUIs gibt. Und da fehlt mir definitiv die Übersicht. Ich weiß 2 Sachen: ich werde wahrscheinlich nicht mit MFC anfangen, da es nach Meinung vieler eh in den letzten Zügen liegt. Kann man das so sagen?
Und VLC fällt aus, weil ich von Arbeit her auf MV VS angewiesen bin. Am attraktivsten scheint mir diese .NET Sache zu sein, obwohl ich noch nicht so richtig dahintergestiegen bin, was das genau ist. Kann auf jeden Fall auch mit C++ programmiert werden oder?
Was ich am Borland C++ Builder toll finde ist, dass man sich die GUI "zusammenklicken" kann. Sowas hätte ich auch gern.Also generell, was wären eure Ratschläge, wie ich mich nach der WinAPI weiterbilden kann?
-
wxWidgets oder QT
-
BeNNeR schrieb:
ich werde wahrscheinlich nicht mit MFC anfangen, da es nach Meinung vieler eh in den letzten Zügen liegt. Kann man das so sagen?
Kann ich überhaupt nicht so sehen! Nach den Planungen für Orcas, wird hier die MFC wesentlich ausgebaut, um die neuen Features für Vista zur Verfügung zu stellen.
BeNNeR schrieb:
Also generell, was wären eure Ratschläge, wie ich mich nach der WinAPI weiterbilden kann?
Schwierige Frage... Um bei MS zu bleiben: Windows-Forms oder zukünftig WinFX
-
Naja, das MFC in seinen letzten Zügen liegt, sagen gerne die MFC-Hasser. Aber das MS jedes Mal die MFC mit neuen Funktionen aktualisiert und seine eigenen Anwendungen auch mit MFC entwickelt, spricht dies eine ganz andere Sprache.
Ich selbst kann nur sagen, das die MFC in der heutigen Zeit leider unschön ist (in Bezug auf C++ Design). Kleinere Sachen kann man sehr fix entwickeln, keine Frage. Es gibt da aber mittlerweile bessere Alternativen, auch von MS. Z.B. ist die ATL (Active Template Library) von MS schon mal nicht schlecht und schon sehr objectorientiert. Dafür brauchst du aber mind. VC++ 2003 Standard oder VS 2005 Standard, um eine gute ATL-Unterstützung zu haben.
Einziger mir bekannter Nachteil der ATL: du bist natürlich auf Windows beschränkt. Wenn du ausschliesslich für Windows entwickeln willst, ist das natürlich irrelevant.
So, dann meine neue Liebe die ich kürzlich entdeckt habe: www.wxWidgets.org
wxWidgets kannte ich zwar schon länger, habs aber nie wirklich ausprobiert.Ich habe vor ein paar Tagen intensiv begonnen damit zu arbeiten, und es macht einfach Spaß. Vorher hab ich MFC aus Überzeugung genutzt, aber wxWidgtes ist um ein paar Klassen einfacher für komplexere GUIs. Auch für Einsteiger somit einfacher zu erlernen.
EDIT: Wie Jochen richtig sagt, die MFC ist nicht out. Man kann sie benutzen. Aber ich würde mich (wenn es MS-Technologien sein soll) eher der ATL einverleiben. Die ATL arbeitet auch sehr gut mit der MFC zusammen, und umgekehrt. Man sollte beides erlernen, wenn man unbedingt MS + C++ Technik nutzen will.
-
Mit MFC kann man einfach nicht richtig produktiv sein. Noch nicht mal Layout Manager hat das Ding.
-
Ja, das was mich an der MFC stört (obwohl ich sie wirklich mächtig finde!) das das Bauen von GUIs nicht der Bringer ist. Da hätte MS ruhig mal einen Entwickler zus. ransetzen lassen können. Aber bei www.codeproject.com gibts Layout-Manager zum runterladen. Wer die MFC benutzt, muß grundsätzlich im Web nach Erweiterungen suchen, da die MFC nur die Win32-GUI-API wrapped. Und die ist nun wirklich nur eine Grundlage. Aber, man kann auf jeden Fall im Netz was finden.
Ansonst: wxWidgets, das hat schon Layout-Manager obwohl es auch "nur" die Win32-GUI-API wrapped.
-
Artchi schrieb:
Ich habe vor ein paar Tagen intensiv begonnen damit zu arbeiten, und es macht einfach Spaß. Vorher hab ich MFC aus Überzeugung genutzt, aber wxWidgtes ist um ein paar Klassen einfacher für komplexere GUIs. Auch für Einsteiger somit einfacher zu erlernen.
Ich störe dein rendezvous ja nur ungerne, aber nerven dich die TONNEN von Makros gar nicht? Für mich waren sie jedenfalls mit ein Grund, wxWidgets vorerst zu dumpen.
-
Das ist eine berechtigte Frage!
Im ernst: ich habe auch wegen der Makros (in wxWidgets) bisher immer der MFC die Treue gehalten (das wissen sicherlich viele hier), eben gerade, weil ich mir dachte "Naja, besser wird das in dem Punkt ja nun nicht, bleib ich also weiter bei der MFC."Du weißt auch, das ich versucht habe auf ein GUI-Toolkit ohne Makros umzusteigen? gtkmm. Muß ich nicht weiter ausführen.

Qt ist mir für private Zwecke zu teuer (weil ich nicht OpenSource machen will).
Am Ende blieb wxWidgets übrig, da es für meine pers. Belange der beste Kompromiss ist um mein nächstes Projekt umzusetzen. Die Makros sind (soweit ich mich damit beschäftigt habe) nur in den Event-Geschichten zu finden. Klar, sigc wäre besser, aber eine andere Story.
-
Artchi schrieb:
Das ist eine berechtigte Frage!
Im ernst: ich habe auch wegen der Makros (in wxWidgets) bisher immer der MFC die Treue gehalten (das wissen sicherlich viele hier), eben gerade, weil ich mir dachte "Naja, besser wird das in dem Punkt ja nun nicht, bleib ich also weiter bei der MFC."Immerhin hast du ja jetzt Plattformunabhängigkeit

Du weißt auch, das ich versucht habe auf ein GUI-Toolkit ohne Makros umzusteigen? gtkmm. Muß ich nicht weiter ausführen.

Ich erinnere mich

Qt ist mir für private Zwecke zu teuer (weil ich nicht OpenSource machen will).
dito. Außerdem ist es nicht so schön designed wie gtkmm.
Am Ende blieb wxWidgets übrig, da es für meine pers. Belange der beste Kompromiss ist um mein nächstes Projekt umzusetzen. Die Makros sind (soweit ich mich damit beschäftigt habe) nur in den Event-Geschichten zu finden. Klar, sigc wäre besser, aber eine andere Story.
Ich werde mich, sobald ich Zeit habe, wieder näher mit reinem gtk+ beschäftigen. Vllt. hilft mir das, wenn alle Stricke reißen: Selber schreiben!
MfG
GPC
-
BeNNeR schrieb:
Ich habe angefangen mich mit WinAPI zu beschäftigen, weil ich wissen wollte, wie eine grafische Oberfläche genau arbeitet und was im Hintergrund alles abläuft, um sozusagen erstmal ein paar Grundlagen zu haben. Doch ich habe auch mitbekommen, dass es effektivere Wege zum programmieren von GUIs gibt. Und da fehlt mir definitiv die Übersicht. Ich weiß 2 Sachen: ich werde wahrscheinlich nicht mit MFC anfangen, da es nach Meinung vieler eh in den letzten Zügen liegt. Kann man das so sagen?
Und VLC fällt aus, weil ich von Arbeit her auf MV VS angewiesen bin. Am attraktivsten scheint mir diese .NET Sache zu sein, obwohl ich noch nicht so richtig dahintergestiegen bin, was das genau ist. Kann auf jeden Fall auch mit C++ programmiert werden oder?
Was ich am Borland C++ Builder toll finde ist, dass man sich die GUI "zusammenklicken" kann. Sowas hätte ich auch gern.Also generell, was wären eure Ratschläge, wie ich mich nach der WinAPI weiterbilden kann?
.NET ist das was ich jetzt im Moment sehr gerne verwende, solang ich mich in Windows aufhalte. Auch meiner Meinung nach das einfachste zu lernen und am angenehmsten zu verwenden.
Naja und zum teils ist .NET mit mono ja auch auf linux,mac, solaris etc.. einsetztbar.MFC ist sicher nicht soviel anders, aber meiner meinung etwas unbequemer als .NET.
QT und GTK hab ich auch mal benutzt, wenn man cross platform arbeiten will sicher net schlecht, aber dann schaut deine Anwendung unter win auch gleich ganz anders aus.
Ausserdem, wenn man von Winapi kommt, schauen bei QT oder gtk die konzepte doch ein bisschen anders aus.
Obwohl ich damals das QT system der mfc vorgezogen habe, bin ich erst mit .NET einigermassen zufrieden, was easy interface/layout Erstellung geht.
Auch hat man QT und GTK unter windows keine graphische oberflaeche bei der man das layout einfach so zusammenklickt.Noch ein wort zu .NET: Wenn man von User interface spricht, dann meint man schlechthin nur einen kleinen teil der Framework, naemlich die windows::forms .
.NET hat noch etwas mehr zu bieten. So wie der NET erkennen laesst, viel Sachen in dieser richtung, web, server , browser ... .