Einsteigerbücher zur MFC-Programmierung



  • Bezüglich der Windows-Programmierung mit WinAPI anzufangen, ist eine gute Entscheidung. Es entspricht dem Denken von innen nach außen und dem historischem Weg. Ich empfehle sogar, kleine Windows-Programme zunächst mit MASM in Assembler zu erstellen.

    Lektüre z.B. hier: http://andremueller.gmxhome.de/win.html

    hier einige Ausschnitte mit Windows-Funktionen:

    ...
        jmp @F
          szDlgTitle    db "Minimum MASM",0
          szMsg         db "  --- Assembler Pure and Simple ---  ",0
        @@:
    
        push MB_OK              ; <== hier sieht man exakt, wie der Stack 
        push offset szDlgTitle  ; <== bezüglich der Parameterreihenfolge arbeitet
        push offset szMsg       ; <== Bei STDCALL werden die Parameter von 
        push 0                  ; <== rechts beginnend auf den Stack gelegt 
        call MessageBox         ; <== Funktion sorgt für Stackbereinigung 
                                ; MessageBox( 0, szMsg, szDlgTitle, MB_OK )
    

    Nur hier sieht man, dass die Parameter auf den Stack gelangen und in welcher Reihenfolge Funktionen ihre Parameter auf den Stack "pushen", was also "_stdcall" ( ist dasselbe wie WINAPI oder FAR PASCAL ) im Gegensatz zur C-Aufrufkonvention bedeutet. Die Parameter werden also von rechts nach links auf den Stack geschoben, aber natürlich nach dem LIFO-Prinzip des Stacks von links nach rechts durch die Funktion abgerufen. In Arbeit sieht man so etwas nur, wenn man Assembler proggt.

    oder hier:

    push 500
            push hInst
            call LoadIcon
            mov wc.hIcon, eax      ; Rueckgabewert nach EAX
     ...       
            push IDC_ARROW
            push NULL
            call LoadCursor
            mov wc.hCursor, eax    ; Rueckgabewert nach EAX
     ...
            push NULL
            push hInst
            push NULL
            push NULL
            push Wht
            push Wwd
            push Wty
            push Wtx
            push WS_OVERLAPPEDWINDOW
            push offset szDisplayName
            push offset szClassName
            push WS_EX_OVERLAPPEDWINDOW
            call CreateWindowEx
            mov   hWnd, eax        ; Rueckgabewert nach EAX
    

    ... und dass der Rückgabewert der Funktion in den "Akkumulator" (32-bit-Register EAX) gelangt.

    Nur bei der Assembler-Programmierung macht man sich wirklich Gedanken über die Anordnung von Code, Daten und Stack im gleichen Speicherbereich (max. 4 GB).

    Die "Nachrichtenpumpe" versteht man ebenfalls nur konkret auf der WinAPI-Ebene:

    // Nachrichten-Schleife 
    MSG msg; 
    while (GetMessage (&msg, NULL, 0, 0)) 
    { 
      TranslateMessage (&msg); 
      DispatchMessage (&msg); 
    } 
    return msg.wParam; 
    }
    

    Diese "Pumpe" findet man innerhalb des MFC-Sourcecodes nur mit kriminalistischem Spürsinn. Auf jeden Fall danach suchen! 😉

    Die didaktische Reihenfolge MASM (Assembler) => WinAPI => MFC (oder eine andere objekt-orientierte Bibl.) => Java oder C# ist daher für das Verständnis ideal, leider auch mühsam und aufwendig.

    Das Buch von Petzold zur WinAPI ist lesenswert, da nur dort Details der Windows-Programmierung erklärt werden. Ich möchte hier auch den genialen Jeffrey Richter (eher etwas für Fortgeschrittene) nennen.

    Für das Verständnis der MFC ist folgendes Buch lesenswert:
    George Shepherd und Scot Wingo, "MFC Internals", Addison Wesley
    Dort sieht man die Arbeitsweise der MFC von innen. 🙂



  • aha!
    naja ich kann soo gut english nicht
    und so tief will ich auch nicht eintauchen 🙂 bis zum asm
    wenn ich mit winapi anfange denke ich mir dass ich dann damit gut auskennen werde
    am schluss will ich eher nur mit mfc programmieren
    und wenn ich mich dann auskenne werde ich mit asm anfangen
    eben das schwerste zuletzt 🙂
    danke sehr



  • Das Buch kann ich auch noch empfehlen

    Visual C++ 6 Kompendium, m. CD-ROM

    Toth, Viktor T.; Louis, Dirk

    Visual C++ 6 Kompendium, m. CD-ROM
    Alle Grundlagen der 32-Bit-Programmierung mit Visual C++ und Visual Studio, Expertenwissen zu Multitasking, MFC, ActiveX, DirectX und ODBC . . .

    1999. 1115 S. m. Abb. 25 cm
    Einband Gebunden
    Verlag Markt und Technik
    Best.-Nr. 7786532
    ISBN-Nr. 3827254671
    Preis: 44.95 EUR

    Visual-C++-Programmierer können jetzt auch beim neuesten Update dieser leistungsstarken Programmierumgebung auf die Hilfe eines Markt&Technik-Kompendiums bauen. So erfahren Sie nicht nur alles Wichtige zu Visual-C++ an sich, sondern auch, wie Sie die neuen Feature der Version 6 z.B. bei der Internet- oder Datenbankprogrammierung sinnvoll einsetzen. Umfassende praxisnahe Informationen, aber auch theoretische Grundlagen, vermittelt in einem verständlichen Stil, sorgen für viel Motivation und Spaß beim Erlernen dieser faszinierenden und zukunftsorientierten Programmiersprache. Dabei deckt das vorliegende Arbeitsbuch und Nachschlagewerk sowohl die Besonderheiten von Visual C++ 6 als auch die Grundlagen und Tricks der Windows-Programmierung ab.

    Aus dem Inhalt
    - Das Visual-C++-Entwicklungssystem
    - Die Windows-Architektur und die WIN32-API
    - Die Microsoft Foundation Classes
    - Datenbankprogrammierung: ODBC, DAO, OLE
    - Netzwerk und Kommunikation: MAPI, TAPI, API
    - Grafik und Multimedia: MCI, OpenGL, DirectX
    - Ausführlicher Referenzteil zum schnellen Nachschlagen

    Die Autoren
    Der gebürtige Ungar Viktor Toth begann seine Karriere als Autor 1979 mit einem Buch über den legendären magischen Würfel von Rubik, lebt heute in Kanada und zählt weltweit zu den profiliertesten Computerbuchautoren.
    Dirk Louis studierte Informatik und Biologie und war mehrere Jahre am Max-Planck-Institut in Saarbrücken tätig. Heute ist er selbständiger Programmierer und Autor zahlreicher erfolgreicher Programmierbücher im Markt&Technik-Verlag.

    Auf CD-ROM
    Visual C++ 6.0 Introductory Edition (deutsch). Mit dieser Version können Sie eigene Anwendungen erstellen, die Beispielprogramme aus dem Buch nachvollziehen und sich mit der Entwicklungsumgebung von Visual C++ 6.0 vertraut machen. Dazu finden Sie alle Sourcen und Programme aus dem Buch und weitere nützliche Free- und Shareware für Programmierer.



  • super !
    das wollte ich mir auch als nächstes kaufen

    danke sehr

    @PAD: was für Bücher hast du denn schon gelesen?
    Du programmierst doch in VC++?



  • 🙂 Leider viel zu viele um sie hier aufzuführen.

    Ich arbeite als Softwareingenieur in einer Gruppe die die Testgeräte für alle Produkte unseres Hauses (Sensoren und Geräte) herstellt.

    Mein Werdegang beginnt mit Apple II 6502 Assembler, Basic, Pascal über Fortran Simula auf IBM-Mainframes hinzu Pc´s mit Forth, Borland C 2.0,..,3.1 und jetzt Windowsprogrammierung mit C und teilweise C++ je nachdem was sich besser eignet.

    C zur Messdatenerfassung weil deterministischer und C++ für Windowsprogrammierung.

    Zur Windowsprogrammierung kommt VC++ 6.0 typischerweise mit WinApi zum Einsatz
    🙂



  • @maximo: Wichtig ist, Details zu verstehen. Deshalb finde ich den Einblick in Assembler-Programmierung nicht uninteressant. Für WinAPI gibt es vor allem die Autoren Charles Petzold und Jeffrey Richter. Das sind die Besten.



  • Erhard Henkes schrieb:

    Wichtig ist, Details zu verstehen. Deshalb finde ich den Einblick in Assembler-Programmierung nicht uninteressant. Für WinAPI gibt es vor allem die Autoren Charles Petzold und Jeffrey Richter. Das sind die Besten.

    Da hast du auch nicht so unrecht, das Buch von Petzold reicht mir erstmal für das Verstehen von Strukturen und Klassen etc. Es ist ziemlich detailiert beschrieben und ich will ja irgendwann damit fertig werden und nicht erst nach 5 Jahren 🙂

    @PAD: sag doch nur welche Bücher du zu Win32-API und VC++ gelesen hast

    Danke sehr im voraus



  • Osborne Windows Programming Series
    Volume 1 to 3

    C&L Das Win32 API von Soltendick
    Band1 bis 4

    Den Petzold

    Den Richter

    Jetzt Lerne ich Visual C++ von Dirk Louis

    Visual C++ die Online Hilfe und den mitgelieferten MSDN Teil

    🙂 😃 🙂



  • was meinst du mit Den Richter ?
    Ich kenne nicht alle Bücher auswendig 🙂
    Bitte, nur die deutschen, am besten mit ISBN damit die ich mir auch kauf
    ich will auch so klug sein wie du 🙂

    Danke sehr



  • Die Namen Petzold und Richter sind in diesem Thread schon gefallen

    Petzold, Charles
    Windows-Programmierung
    5. Auflage
    Microsoft Press
    ISBN 3 86063 487 9
    ca. € 59,90

    Richter, Jeffrey
    Microsoft Windows Programmierung für Experten?
    4. Auflage
    Microsoft Press
    ISBN 3 86063 615 4
    @ 66.00

    😮 😮

    PS: Probiers auch mal damit
    http://www.henkessoft.de/inhalt.htm

    🕶



  • und nur die beiden Bücher hast du zu dem Thema gelesen?

    Das mit Petzold ist mir auch klar

    Und was ist mit
    C&L Das Win32 API von Soltendick
    Band1 bis 4
    das mit dem Richter, Jeffrey
    4. Auflage
    habe ich mir rausgesucht und es ist doch
    Microsoft Windows Programmierung für Experten?

    nochmals danke für die Geduld 🙂



  • Sorry, ich habe die Bücher nicht gelesen.

    Sondern ich arbeite mit diesen 6 Büchern ständig wenn ich Windows Programmiere.

    Hinzu kommt das in VC wenn man mit dem Cursor auf eine Funktion geht und F1 drückt zu dieser Funktion ein ausführliche Hilfe von MS geliefert wird.

    In dieser Hilfe gibt es auch weitere Suchmöglichkeiten die ich ebenfalls intensiv nutze.

    Speziell die Punkte Index und Suchen sind sehr hilfreich

    🙂

    😡 Stimmt den Titel hatte ich vergessen 😡



  • ok
    und kennst die ISBN von
    C&L Das Win32 API von Soltendick
    Band1 bis 4

    vielen dank



  • Band 1: 3932311051
    Band 2: 3932311361
    Band 3: 393231137X
    Band 4: 3932311523
    Band 5: 3932311841



  • habe alle Bänder gefunden
    danke sehr!!



  • Es gibt auch gute leichtverständliche englische Einsteiger-Tutorials zur WinAPI-Programmierung, z.B. dies hier:

    http://www.winprog.org/tutorial/

    Wenn man leichte Probleme mit Englisch hat, kann man das kostenlose Programm Babylon verwenden. Shift+Rechte_Maus liefert dann die Übersetzung. 😉



  • C&L Das Win32 API von Soltendick würde ich mir nicht unbedingt beschaffen, da dies in MSDN oder einer anderen Win32API-Hilfe ebenfalls enthalten ist.



  • Die Dinge sind in der MSDN nicht so sortiert das man die Zusammenhänge sieht.
    Hilfreich ist auch die 1/4 Seite text die den Kapitelanfang macht.

    Ich durch das Durchblättern und Suchen in den Büchern oftmals erst den Einstieg gefunden, so das ich nachher in der MSDN suchen konnte.

    Allerdings eines ist klar Ich habe die Bücher über mein Büro beschafft, da ich sie für meine Arbeit wirklich brauche.

    Privat hätte ich sie wahrscheinlich nicht gekauft, Kosten Nutzen Relation ist da glaub ich nicht gegeben.
    🙂



  • naja das mit den bändern stimmt schon dass es teuer ist
    die bänder kaufe ich mir dann zu letzt 🙂

    wer hat denn von euch die Bänder gekauft? (ausser PAD 🙂 )

    danke sehr



  • in diesem forum wurden bereits sehr viele büchervorschläge diskutiert,
    vielleicht kann man diese mal in der FAQ zusammenfassen ???? 😉


Anmelden zum Antworten