gleich mit MFC anfangen oder besser mit der WINAPI32
-
Hallo,
ich bin Newbe in der Windowsprogrammierung und würde gerne wissen ob es Sinn macht gleich mit der MFC-Programmierung anzufangen,oder sich vorher ausgiebig mit der WINAPI32-Programmierung zu beschäftigen (die ist doch veraltet oder ?).
Als Grundlage bringe ich gute C/C++ Kenntnisse und OOP mit.
Gibts denn auch noch andere Alternativen ?Auf eine Antwort von Euch bin ich sehr dankbar
MfG
-
DerAdminStinkt: WinAPI != OOP
DerAdminStinkt: WinAPI == C
DerAdminStinkt: MFC == C/C++ Mix
Gast8262: aber die basis ist doch winapi32 oder irre ich mich ? sorry bin newbe in sachen win-prog
DerAdminStinkt: ja
DerAdminStinkt: das stimmt
DerAdminStinkt: MFC ist nur ein Wrapper
Gast8262: das heisst
Gast8588: er kapselt die MFC
DerAdminStinkt: genau
NichtDumm: in hässliches c++
Gast8588: oder anders herum
NichtDumm:
Gast8588:
Gast8262: welches von beiden hat ne bessere laufzeit ?
NichtDumm: hä?
Gast8588: MFC baut auf WinAPI auf und kapselt die C-Funktionen in Klassen
DerAdminStinkt: WinAPI ist natürlich schneller
DerAdminStinkt: aber ist ja nur für GUI
NichtDumm: Aber merkt man kaum
Gast8588: ...weil reines C
DerAdminStinkt: -> kein merkbarer Unterschied
DerAdminStinkt: nein
Gast8262: danke
NichtDumm: www.wxwindows.org
DerAdminStinkt: weil du bei WinAPI nur das schreibst, was du auch brauchst
NichtDumm: ist besser als mfc
Gast8588: Aber wenn du die Windowsprogrammierung verstehen willst fang mit WinApi an
Gast8262: wie siehts eigentlich mit qt aus ist doch besser plattformunabhängig zui programmieren oder
DerAdminStinkt: genau
NichtDumm: Super+
Gast8588: Super G?
-
DerAdminStinkt: GerGGG ist ein c00ler Gast
NichtDumm: Ist was zum futtern
Gast8262: gibts eigentlich ne alternative zur mfc
DerAdminStinkt: mit nem noch cooleren Prog
DerAdminStinkt: VCL
Gast8588: VCL
NichtDumm: VCL
DerAdminStinkt: ist leichter als MFC
DerAdminStinkt: aber langsamer
DerAdminStinkt: (dickerer Wrapper)
Gast8588: neee
NichtDumm: ?
Gast8262: und wie siehts mit der ATL aus
Gast8588: ist nicht langsamer
NichtDumm: ATL ist schlank
Gast8262: nicht gut ?
NichtDumm: zusammen mit WTL schon
Gast8588: VCL ist von Bo(h)rland und MFC ist von Mikrodoft
NichtDumm: gut
Gast8262: oh gott was ist das denn schon wieder
NichtDumm: n zusatz für atl
NichtDumm: mit mehr gui elementen
Gast8262: ihr scheint richtig fit zu sein in sachen programmierung
DerAdminStinkt: kommt schon bald
Gast8262: wenn ihr ich wärt womit würdet ihr anfangen
NichtDumm: wer?
DerAdminStinkt: in 1 Jahr hast dus auch drauf
DerAdminStinkt: WinAPI
Gast8588: ich hab mit WinApi angefangen
DerAdminStinkt: (kurz)
DerAdminStinkt: dann MFC
Gast8262: aber ist winapi denn nicht veraltet
-
NichtDumm: und dann C#
DerAdminStinkt: C# suxx
Gast8588: VCL ist kinderleicht.... drag und drop wie VisualBasic
NichtDumm: bald gibts winapi nicht mehr
NichtDumm: oder?
Gast8262: welcher gravierende unterschied ist eigentlich zwischen C++ und c#
NichtDumm: c# suxx, c++ rulez
Gast8588: c# ist ne Krankheit
NichtDumm: so einfach ist das zu erklären
DerAdminStinkt: genau
DerAdminStinkt: c# == langsam
Gast8262: visual basic hab ich mal angefangen ne schlechte sprache finde ich kann c nicht das wasser reichen
NichtDumm: c# == schnell
NichtDumm: im gegensatz zu java
DerAdminStinkt: c# == interpretiert
DerAdminStinkt: c++ == kompiliert
Gast8262: also von c# besser die foten weg lassen ?
Gast8588: c# ist eine mischung aus VB und C++ und häßlich
DerAdminStinkt: -> c++ == schneller
DerAdminStinkt: "also von c# besser die foten weg lassen ?" ja!
NichtDumm: JA
DerAdminStinkt: ist auch MS-proprietär
Gast8262: ok danke
Gast8588: wenn's dich interessiert, schau
Gast8588: 's Dir an
Gast8262: wie hat sich eigentlich qt durchgesetzt
-
Wenn du dich gut in C++ auskennst, solltest du lieber ne andere GUI-LIB nehmen als die MFC. Die ist scheußlich! Jedenfalls aus OOP-Sicht.
-
wleche denn z.B. ?
-
VCL
-
VCL
-
erster
-
meine meinung dazu: wenn du nur mal schnell eine simple gui brauchst, klick dir das ding mit der VCL oder im resourcen-editor von Visual Studio zusammen - fertig.
wenn du ernsthaft windows-programmierung betreiben willst, vergiss diesen ganzen lib-krams und lerne von der pike auf - sprich WinAPI in reinem C. wenn du das alles begriffen hast, fängst du einfach an, deine dinge selber in klassen zu kapseln. dann hast du schlanke schnittstellen und den ganzen overhead der VCL/MFC aussen vorgelassen. wenn du damit durch bist, wirst du merken, wie schlecht diese libs das WinAPI kapseln und deine frage hat sich erledigt, da du sie vermutlich gar nicht mehr benutzen willst ;).
wirf mal einen blick in das MFC/VCL forum ... 90% der fragen die dort gestellt werden, wären überflüssig, wenn die leute das WinAPI drauf hätten. sorry, aber so ist es einfach ... weiss es aus eigener erfahrung, habe auch mit einer lib angefangen, aber schnell gemerkt, das man damit nicht weiterkommt, wenn man in die tiefen des systems will.
so far ... rocknix ///
-
wirf mal einen blick in das MFC/VCL forum ... 90% der fragen die dort gestellt werden, wären überflüssig, wenn die leute das WinAPI drauf hätten. sorry, aber so ist es einfach..
so ein Bldsinn..die meisten Fragen im BCB-Forum gehen um VCL-Klassen und wie man mit ihnen umgehen muß...was nützt einem da das Wissen in WinApi?! Natürlich könnte man auch statt der Klassen zu verwenden WinApi verwenden, aber des wär wohl net ganz der Sinn der Sache
-
ok, im vcl forum ist es nicht so extrem, aber bei mfc...
-
wie es im mfc-Forum is weiß ich nich (mag mfc nich)
ne eigene Lib zu schreiben is zwar ne nette Programmier-Übung, aber ist es wirklich nötig? Muß man eigentlich immer und jeder das Rad neu erfinden? "VCL und MFC sind nix für ernsthafte Programmierung"..naja immerhin haben -vermute ich- erfahrene Programmierer bei Micro$oft und Borland die Dinger geschrieben...ob die das wirklich schlechter können als ein einziger Hobby-Programmierer (falls man Hobby-Programmeir is
)? und selbst wenn man es schafft einige Details die an VCL/MFC schlecht gelöst sind bessser hinzukriegen, kriegt man dann die vielen Dinge die sehr gut gelöst sind auch so gut hin? Hat man vielleicht sehr viele Dinge die dort sehr geschkickt gemacht wurden nicht einfach übersehen und steht wenn man sie selber coden will plötzlich dumm da? Ich persönlich hab dadrauf jedenfalls keine Lust und benutz lieber die VCl, selbst wenn sie nicht so schnell is wie reine WinApi . (Ich code ja auch C++ und nicht Assembler obwohl Assembler-Code schneller is)
-
Natürlich könnte man auch statt der Klassen zu verwenden WinApi verwenden, aber des wär wohl net ganz der Sinn der Sache
genau das ist der punkt - meine erfahrung hat mir gezeigt, dass es mitunter viel viel mehr zeit kostet, die klassen zu verstehen als das WinAPI zu durchschauen. und die klassen zu durchschauen heisst auch noch lange nicht, das man die implementierung und somit den systemkrams begriffen hat. und wehe es tauchen mal fehler auf, dann ist das gejammer gross
...
ist das sinn der sache
rocknix ///
-
Ein Gundverständins der WinApi is aufjdenfall gut. Wenn man zB auf eine Form der VCL zeichnet wird man sich wahrscheinlich wundern daß das was man gemalt hat weg ist sobald man die Form minimiert und wieder hochholt. Da nützt einem das Api-Wissen daß das halt beim Ereignis WM_Paint gemacht werden muß und nicht sonstwo wenns dauerhaft sein soll... trotzdem kriegt man graphische Oberflächen einfach mit KlassenLibs viel schneller hin und sie sehen meistens besser aus, weil man einfach mehr Aufwand ins Design als in die Programmierung selber stecken kann
-
crass hat recht. Ich kenne nun keine anderen GUI-LIBs als die VCL, aber die ist so der Hammer. Wenn man sich den Quellcode durchschaut, dann merkt man, dass dieser von Menschen geschrieben wurde, die Ahnung haben. Richtig geil! Natürlich ist es mit ner LIB einfacher und schneller zu programmieren als mit WinAPI selber. Man denke da nur an das Arbeiten mit Bitmaps. Ist in VCL super-einfach. Ein paar Zeilen ... fertig.
-
Die VCL ist auch ganz gut. Aber MFC stinkt. Mußte den Mist mal Kurzzeitig beruflich machen, nach 2 Wochen hab ich den Mist weggeschmissen, und das Projekt rein WinAPI gecodet. Is echt scheußlich, so ein durcheinander an Klassen. Ok - der MFC Inet kram ist noch logisch, aber ne ganze Anwendung in MFC? Nein Danke *g
-
Man denke da nur an das Arbeiten mit Bitmaps. Ist in VCL super-einfach. Ein paar Zeilen ... fertig
<ironie>
ja, stimmt - es ist wirklich supereinfach mit der VCL/MFC bitmaps auf den schirm zu bringen, vor allem wenn man diese noch dazu verwenden möchte eigene controls ( scroller/thumbs sind übrigens besonders einfach, da das subclassen/hooken in VCL so prima funktioniert ) zu zeichnen, wo doch das skinning sooo gefragt ist ...
</ironie>ach, übrigens ? wieviele zeilen brauchst du für eine bitmap mit dem WinAPI ? 100 ? wohl eher nicht, hmm ?
so, schluss mit dem flame ... rocknix
[ Dieser Beitrag wurde am 01.04.2003 um 11:11 Uhr von RockNix editiert. ]
-
Für den Anfang reicht MFC. Später wenn man relativ sicher im Umgang mit dem CWnd- Zeuch ist schadet es auf keinen Fall einen Blick in die WinAPI zu werfen. Gerade wenn es um IPC etc. geht.
-
@RockNix: Anzeigen der Bitmap-Datei "Bitmap.bmp" an Position (0,0) im Fenster:
Graphics::TBitmap* bmp = new Graphics::TBitmap; bmp->LoadFromFile("Bitmap.bmp"); Canvas->Draw(0, 0, bmp); delete bmp;
Mach das mal in WinAPI so fix. Nene, das Arbeiten mit Klassen für die WinAPI ist durchaus sinnvoll. :p