Hi Leute! Bitte nicht steinigen, aber als völliger NOOB suche ich nach ner kurzen informativen Antwort. Ich versuche gerade in die Visual C++ Programmierung einzusteigen. So, wie ich das verstanden habe, ist die MFC eine Libary, in der die Klassen drin sind. Die CLR aber auch, oder hab ich da was in den falschen Hals bekommen? Was ist wofür zu empfehlen? Danke für Rat...
>Ich versuche gerade in die Visual C++ Programmierung einzusteigen
Wenn du noch nicht eingestiegen bist, dann steig lieber gleich auf die
C# Programmierung um. Ich musste einige Male MFC Programme programmieren
und das war mehr als widerlich. Es sei denn du möchtest eine ganz kleine
Anwendung wie Taschenrechner erstellen etc. C# ist einfacher und schöner
zu programmieren.
C# ist nicht C++. CLR ist die "common language runtime", weist also auf das .Net-Geraffel hin. C++ für .Net ist kein C++, sondern eine Microsoft-Perversion namens "Managed C++".
MFC ist schon uralt (laut Wikipedia gibt es sie seit 1992) und wurde im Lauf der Jahre nur wenig weiterentwickelt. Die beiden Dinge, die ich am meisten vermisse, sind automatisches Layout und hierarchische Gruppierung von Dialogelementen. Für einfache GUIs ist sie in Verbindung mit dem Dialogeditor ganz gut zu gebrauchen. Sobald die GUIs aber komplexer werden, steigt der Aufwand schon bei kleinen Änderungen oder Erweiterungen rapide an. Man ist dann nur noch am Hin- und Herschieben von Dialogelementen, verliert den Überblick über hunderte von Callback-Funktionen usw. Die automatische Neuanordnung der Dialogelemente bei Änderung der Fenstergröße wird so gut wie überhaupt nicht unterstützt (deswegen gibt es Windows auch kaum Dialogboxen, die in der Größe verändert werden können). Kurz: MFC ist der mit Abstand altbackenste Toolkit, der noch in Gebrauch ist. Alle anderen mir bekannten GUI-Toolkits (GTK, Qt, die unterschiedli- chen Java-Toolkits usw.) haben die genannten Nachteile nicht. Auch beim .NET-Framework soll einen deutlich besseren Toolkit als die MFC dabei sein, aber da kenne ich mich nicht aus. Ich kann deswegen nicht sagen, welche Programmiersprachen unterstützt werden, aber wahrschein- lich sind es nur die spziellen .NET-Sprachen C#, VisualBasic und evtl. dieser neue C++-ähnliche Verschnitt. Aber darüber können dir sicher .NET-Programmierer mehr erzählen.
Für Neueinsteiger würde ich die MFC definitiv nicht empfehlen. Die von yalu angebrachten Kritikpunkte treffen es ganz gut, dazu kommt die recht miese Dokumentation und die steile Lernkurve. Recht interessant ist das GUI-Toolkit wxWidgets. Das ist auf mehreren Plattformen verfügbar und kann mit verschiedenen freien C++-Compilern genutzt werden. wxWidgets ist in den Grundkonzepten der MFC ähnlich, aber an den Punkten weiterentwickelt, wo es bei der MFC hapert. Gerade das Dialogmanagement ist ganz erheblich besser. Dazu gibt es auch nicht-C++-Bindungen wie wxPython. Das ganze ist frei (im Sinne von GPL etc.); es gibt auch ein Buch von Julian Smart darüber (Link: Suchen nach "Julian Smart", habe ich schon gelegentlich in anderen Threads erwähnt). www.wxwidgets.org Ein GUI-Builder (nicht frei, aber auch nicht allzu teuer) ist DialogBlocks von Julian Smart (anthemion.co.uk).
Ich hab mit Latissimo mal in CLR angefangen die Oberfläche zu implementieren. Muss dazu sagen, das dies auch Neuland für mich ist. In MFC hab ich etwas wenn auch nicht viel Erfahrung. C++ Kenntnisse sind bei mir noch vorhanden, allerdings etwas eingestaubt^^ Darum wollten wir das auch in C++ machen. Haben bisher nur die Oberflächen gestaltet, Logik ist noch kaum was implementiert. Muss aber sagen mit CLR geht das recht einfach und da die Applikation nicht wirklich komplex wird, werden wir wohl in CLR weitermachen bzw. mal versuchen die komplette Logik zu implementieren. Entweder so oder wir steigen morgen doch auf MFC um^^ @yalu: Das mit der Neuordnung bei Veränderung der Dialoggröße nervt mich auch ständig, seit ich mit MFC angefangen hab. Hab das dann immer durch eine Neuberechnung der Koordinaten gelöst. Umständlich aber wohl die einzige Möglichkeit.
@Rufus: Danke für die Links, schau sie nachher mal daheim in Ruhe an. Die Software ist halt für kommerzielle Zwecke daher muss ich bissl schaun was ich verwenden kann. Bzw. was wir bereits im Geschäft verfügbar haben und das ist glaub nur Microsoft Visual Studio
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.