Einsteigerbücher zur MFC-Programmierung



  • Inside Visual C++ (Microsoft Press) könnte ich noch empfehlen, allerdings nur wenn man mindestens die grundzüge von C++ einigermaßen drauf hat.



  • Hi
    also zu VC++ in 21 Tagen kann ich das sagen:
    viele Fehler, viele Lücken wo man lange nachdenken und suchen muss
    für Anfänger die ersten 7 Tage finde ich gut. Danach konnte ich kein beispiel mehr ohne Fehler finden und habe aufgegeben,
    und dort sind keine guten Beispiele finde ich, was ich gemerkt habe
    man hat viel mit zeichnen zutun
    naja, zeichnen möchte ich nicht :-))

    @Erhard Henkes
    Deine Tutorials finde ich sehr gut!

    Dann habe ich ein Buch gefunden und wollte fragen ob jemand das kennt und mir was dazu sagen kann:
    Visual C++ .NET Bible
    Link:
    http://dotnet-magazin.de/itr/buchtipps/psecom,id,180,nodeid,33.html

    Danke sehr im voraus

    Maximo



  • Inside Visual C++ 6.0 ist ein sehr gutes Buch, aber wie gesagt für Einsteiger ist es nicht geeignet.



  • Ich habe zuerst mir mit Hilfe von Erhard Henkes Tutorial und der Onlineversion von Visual C++ in 21 Tagen so nen bißchen was beigebracht und mir dann auch "Programming Windows with MFC" gekauft und bin damit wirklich sehr zufrieden. Nur musst du dafür über einigermaßen ausreichende Englischkenntnisse verfügen, die deutsche Version gibt es nicht mehr zu kaufen.



  • Shlo schrieb:

    Inside Visual C++ 6.0 ist ein sehr gutes Buch, aber wie gesagt für Einsteiger ist es nicht geeignet.

    naja ich habe wie gesagt 1/3 vom VC++ in 21 Tagen gelesen, hälfte von einem C++ Buch und ich lese jetzt Sybex Visual C++
    bin ich jetzt buchtauglich? 🙂
    dh. werde ich dieses Buch verstehen?

    thx



  • manche sachen wirst du sicherlich verstehen, allerdings würde ich dir eher raten mit winapi anzufangen.



  • was meinst du mit winapi?



  • Winapi (Windows Application Programming Interface) ist eine Schnittstelle. mfc z.B. kapselt die Winapi





  • @Shlo: ich merke dass nur Bücher mit dem MFC zu lesen gibt
    ich habe noch kein Buch gefunden dass sich mit WinAPI beschäftigt

    und ausserdem wieso mit WinAPI anfangen wenn "MFC auch ein Teil" davon ist?
    Dh. wenn ich MFC lerne muss ich auch zwangsweise auch WinAPI lernen oder nicht?



  • @Shlo: ich merke dass nur Bücher mit dem MFC zu lesen gibt
    ich habe noch kein Buch gefunden dass sich mit WinAPI beschäftigt

    und ausserdem wieso mit WinAPI anfangen wenn "MFC auch ein Teil" davon ist?
    Dh. wenn ich MFC lerne muss ich auch zwangsweise auch WinAPI lernen oder nicht?



  • Wenn man gleich mit mfc anfängt, hat man später Probleme die ganze Windows Struktur d.h Messages und andere Dinge zu verstehen oder man weisst nicht wie diese überhaupt funktionieren, weil mfc diese eben "verdeckt". Wenn man (etwas) Winapi kann fällt es leichter die ganzen mfc Klassen zu verstehen. Ausserdem wenn du in Inside Visual C++ 6.0 interessiert bist - dieses Buch beinhalten viele nützliche Infos für Winapi-Programmierer. Bücher zum Thema Winapi gibts viele, schau einfach auf der Mainpage unter Bücher nach.



  • ok
    ich werde deinen Rat folgen
    kennt jemand ebooks/tuts?
    und soll ich mir das Buch
    Windows Programmierung. Das Entwicklerhandbuch.
    kaufern? Ist das geeignet?
    was ich noch gemerkt habe dass hier viele echt ahnung haben
    woher wisst ihr das alles?
    welche Bücher sollte man lesen damit man das alles weiss?

    danke sehr im voraus



  • Wenn du dich wirklich mit WinAPI beschäftigen willst, wirst du um den Petzold nicht herumkommen.



  • jetzt bin ich bisschen verwiirt
    ich will ja mit MFC programmieren nicht mit WinAPI direkt

    was jetzt?



  • Für MFC ist der Petzold nicht, dafür gibts "Programming Windows with MFC" von Jeff Proise. Ich würd an deiner Stelle auch erst mal MFC machen, aber später wirst du um WinAPI nicht herumkommen. Und dann kannst du dir den Petzold kaufen.



  • wie ich aus den ganzen beiträgen resultiere muss ich eben mit Petzold anfangen
    denn das ist ja sozosagen der Grundstein von der Windowsprogrammierung deshalb werde ich mir wohl das Buch zuerst kaufen müssen und dann eben mit MFC fortfahren

    Danke sehr an alle die mir bei der Entscheidung geholfen haben 👍



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


Anmelden zum Antworten