WinApi gegen MFC
-
du kannst beides prima mischen. mit mfc machste das grundgerüst (fenster, menuzeile etc.) und mit winapi die feinheiten. am besten dialogbasierte anwendungen (können aber auch schick aussehen). diese mfc document-view klassen (eine art mvc-pattern) würde ich erstmal ausser acht lassen.
-
Danke für Eure Antworten! Hier scheint ja dauernd wer online zu sein, der einem hilft. Super

Also dann weiß ich was ich mir noch vor "Visual C++ in 21 Tagen" vornehme!
Nur so aus Interesse: Ist die MFC einfach eine Bibliothek, wo viele Funktionen drinnen sind, die aus den normalen WIN API Fkt. zusammengebaut worden sind!?
Oder baut die MFC auf ewas anderem auf!?
Grüße,
Harri
-
harry3 schrieb:
Nur so aus Interesse: Ist die MFC einfach eine Bibliothek, wo viele Funktionen drinnen sind, die aus den normalen WIN API Fkt. zusammengebaut worden sind!?
Oder baut die MFC auf ewas anderem auf!?
Nein, paßt schon:
MFC ist eine Sammlung von Klassen, die die WinAPI kapseln.Somit wird ein Fenster zu einem Objekt mit diversen Methoden (Fenstertitel ändern usw.), was bei der puren WinAPI nicht der Fall ist; Die WinAPI ist eher auf C getrimmt, MFC ist C++ (An die MFC'ler: kann man das so schreiben?).
-
Moin, Moin...
Als ich mit Windowsprogrammierung begann, hatte ich versucht mich von der objektorientierten Richtung zu nähern. Das ist glatt in die Hose gegangen. Wenn Du keine Ahnung von OOP hast, lass die Finger von MFC. Meine Empfehlung lautet dann, erst mal zu lernen wie die Win-API mit C funktoniert. Dadurch lernst Du IMHO wesentlich besser, wie Windows arbeitet und wie ein Programm unter Windows arbeitet (arbeiten muss).
Anschließend kann es nützlich sein, auf OOP (MFC oder VCL) umzusteigen. Ich persönlich habe eine gewaltige Abneigung gegen OOP und programmiere Windows nur in C.
Ciao...
-
WinApi Programme starten schneller als MFC Programme, aber das kannst du in der heutigen Zeit wirklich vernachlässigen (hat nen älteren Pc). Ich habes erst richtig gemerkt als ich das Programm einem Freund gegeben habe. MFC startet human schnell (normal halt), das WinApi Programm war aber extrem schnell da.
-
Ich denke man kann MFC und Winapi nicht direkt vergleichen, denn es ist wohl klar, dass die MFC alleine schon durch den GUI Designer und dem zusammenfassen von Funktionen in einer Klasse die Entwicklung erleichtert und damit Zeit spart, aber man jederzeit die Winapi direkt benutzen kann und was auch je nach Gebiet unerlässlich ist.
Wenn du die MFC benutzt musst du schon hin und wieder die Winapi benutzen und bei gezielten Bereichen sowieso, daher kann man ruhig mit der Winapi anfangen und später sich mal die MFC/VCL/oder ne andere GUI Lib anschauen die einem viel Arbeit abnimmt.
-
MFC alleine schon durch den GUI Designer
Welchen GUI-Designer? Die vom Resourcen-Editor erstellen Dialoge kann man auch mit WinAPI benutzen.
-
Kann man, aber nicht so komfortabel wie mit der MFC, da ich hier Funktionen und Klassen für die Dialoge direkt erzeugen kann, bei der Winapi kann ich zwar die Ressource laden, aber muss das ganze komplett von Hand schreiben.
-
SirLant schrieb:
Kann man, aber nicht so komfortabel wie mit der MFC, da ich hier Funktionen und Klassen für die Dialoge direkt erzeugen kann, bei der Winapi kann ich zwar die Ressource laden, aber muss das ganze komplett von Hand schreiben.
Nun, da die WinAPI (bis auf COM und GDI+) komplett ohne Klassen auskommt, wozu braucht man dann Klassen für die Dialoge?

Also, "komplett von Hand" mußt Du mir nochmal erklären; Ich erstelle alle meine Dialoge mit dem Dialog-Editor von VS .NET und nutze reine WinAPI mit C (ohne auch nur eine einzige Klasse zu benutzen). Wozu brauch ich dann irgendwelche Wizards, die mir an irgendwelchen Stellen in meinem Quelltext irgendwelche Klassen hinzufügt?
-
Hepi schrieb:
Nun, da die WinAPI (bis auf COM und GDI+) komplett ohne Klassen auskommt, wozu braucht man dann Klassen für die Dialoge?

Also, "komplett von Hand" mußt Du mir nochmal erklären; Ich erstelle alle meine Dialoge mit dem Dialog-Editor von VS .NET und nutze reine WinAPI mit C (ohne auch nur eine einzige Klasse zu benutzen). Wozu brauch ich dann irgendwelche Wizards, die mir an irgendwelchen Stellen in meinem Quelltext irgendwelche Klassen hinzufügt?zeit ist geld wie's so schön heisst. mit dem class-wizard von vs. kann man sich in weniger 1 minute das grundgerüst für 'ne mdi-anwendung zusammenklickern
-
Mein Grundgerüst für eine WinAPI-MDI-Anwendung hab ich in weniger als 1 Minute in ein Projekt eingefügt, und der Quelltext ist sogar lesbar (zumindest für mich lesbarer als jeder(!) MFC-Quelltext, aber das könnte subjektiv beeinflußt sein, da ich MFC nicht so genau kenne), also "zieht" das Argument nicht so...
-
Hepi willst du auf dein Posting ernsthaft ne Antwort? Manchmal frag ich mich echt ...
-
Also anstatt hier "dich selbst zu fragen" solltest Du versuchen, mir die MFC schmackhafter zu machen als sie momentan ist.
Im Moment versagst Du aus meiner Sicht an dieser Aufgabe, da sich Dein Argument des "alles von Hand machens" mir irgendwie nicht erschließt...
-
Will ich doch gar nicht, also dir die MFC Schmackhaft machen, wer sie nehmen will der soll es machen, wer sie nicht nehmen will, der lässt es, so einfach

-
was is besser?
c oder assembler
vb oder c++WinAPI gegen MFC!?
ohne WinAPI keine MFC...Also anstatt hier "dich selbst zu fragen" solltest Du versuchen, mir die MFC schmackhafter zu machen als sie momentan ist.
Im Moment versagst Du aus meiner Sicht an dieser Aufgabe...
welchen vertrag hat er denn unterschrieben dass er dir die MFC "schmackhaft" machen muss!?
ich esse was mir schmeckt. und damit ich weis was mir schmeckt, muss ichs erst einmal probieren...
nichts für ungut

-
Er schreibt in WinAPI müsse man bei Dialogen alles "von Hand" machen, bei MFC nicht.
Daraufhin nahm ich mir die Frechheit heraus nachzufragen, wie er das meint.
Beantwortet hat er das nach wie vor nicht, also muß ich wohl weiterhin alles langsam von Hand machen, ohne mir vorstellen zu können, was MFC da automagisch macht (zumal mir wirklich kein Fall einfällt, in dem ich etwas umständlich von Hand erstellen muß).
Naja, was solls...
-
Hepi schrieb:
Er schreibt in WinAPI müsse man bei Dialogen alles "von Hand" machen, bei MFC nicht.
die .rc-datei vielleicht nicht, aber die dlgproc, ein ellenlanges switch-statement usw. oder man nimmt 'message crackers' aber die muss man auch von hand reinhacken. der mfc classwizard macht praktische handler-funktionen dafür. aber wenn du cool bist und darauf verzichten kannst, machste auch die .rc von hand
