Forum: PC-Programmierung Unterschied MFC und CLR


von Latissimo (Gast)


Lesenswert?

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...

von A. F. (artur-f) Benutzerseite


Lesenswert?

>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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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++".

von yalu (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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).

von Sebastian U. (sulmer)


Lesenswert?

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.

von Sebastian U. (sulmer)


Lesenswert?

@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
Noch kein Account? Hier anmelden.