Gutes Lehrbuch für API (WinMain)



  • Ich habe das 2. Buch auch (bin gerade am Lesen und es ist auch wirklich gut - ich finde es sogar wesentlich interessanter als den Petzold), aber es ist definitiv kein Buch für den Einstieg 😉

    [ Dieser Beitrag wurde am 24.04.2003 um 13:59 Uhr von flenders editiert. ]



  • Danke flenders,

    scheint echt ein gutes Buch für den Windows-Einsteiger zu sein, allerdings zweifle ich ein wenig, ob ich mir das Buch wirklich holen soll, da ich bei Amazon.de folgendes gelesen habe:

    Das Buch geht nicht auf die heutzutage übliche Abstraktion mit C++-Klassenbibliotheken ein, sondern ist durchweg in C und unter Nutzung der Standard-Win32-API geschrieben. Viele der Beispiele, insbesondere diejenigen, die sich mit dem Event-Handling befassen, sind daher für viele Entwickler nicht direkt anwendbar. Aber das ist ja auch nicht das Ziel des Buches, sondern die Nutzung der Win32-API. Und diese ist auch für die Nutzer der o.a. Klassenbibliotheken wichtig.

    Und da es das Ziel meiner Ausbildung ist, allmählich von C (struktoriert) auf C++ (obejektorientiert) umzusteigen, weiß ich nicht was ich machen soll.

    Meine Fragen:

    Heißt das, dass man mit C++ keine Windowsprogramme programmieren kann?? Oder zumindest nicht mit API ?? ( Ich habe allerdings ein C++ Buch, welches sowohl C++ mit MFC als auch mit API anschneidet)

    Was ist mit dem Kommentar gemeint?

    Und grundsätzlich was ist überhaupt der Unterschied zwischen API, MFC und VCL.



  • @flenders:
    Ich denke es ist für einen Einsteiger geeignet. Man sollte nur nicht den Fehler machen das ganze Buch gleich am Anfang verstehen zu wollen. Hilfreich an dieser Stelle ist die Dokumentation zum Platform SDK.
    Der Petzold ist in meinen Augen an ganz andere Leser gerichtet als der Richter. Der Richter wendet sich an Entwickler komplexer Systeme und erklärt detailiert die Konzepte des Win32 API. Den Petzold hab ich nur durchgeblättert. So richtig gebraucht hab ich den nicht.

    @MasterC

    Bei der MFC handelt es sich nur um eine C++ - Abstraktion des WinAPI. Aller Anfang ist das API. Zu VCL (Virtual Common Language oder so) ist zu sagen: Es handelt sich um Code für einen Interpreter der diese Kommandos dann in Maschinensprache der jeweiligen Umgebung übersetzt.



  • @Spacelord

    Wer zwingt Dich Sachen zu lesen, die einen nicht interesieren?



  • Hey fang doch einfach mit den interessanten Sachen an und halt dich nicht mit den Grundlagen auf.Ist doch egal was hinter so nem Window steckt,Hauptsache du kannst andere Prozesse beeinflussen!??
    Das ist ja wohl der grösste Mumpitz überhaupt!!
    Frei nach dem Motto:Ich hab keine Ahnung was ne Message ist aber ich kann sie hooken.

    MfG Spacelord



  • Original erstellt von <MasterC>:
    Heißt das, dass man mit C++ keine Windowsprogramme programmieren kann?? Oder zumindest nicht mit API ??

    Natürlich kannst du mit C++ (in Verbindung mit der WinAPI) Windows-Programme erstellen! In dem Buch werden eben nur C Programme entwickelt, da Petzold der Ansicht ist, dass der Code so besser lesbar ist. Das heißt aber nicht, dass du für dich nicht in C++ coden kannst 😉

    Und grundsätzlich was ist überhaupt der Unterschied zwischen API, MFC und VCL.

    MFC und VCL sind Klassen-Bibliotheken, die die WinAPI kapseln. (Wrapper)



  • Also, ich habe auch das Buch "Microsoft Windows Programmierung für Experten" und muß sagen: jemand, der noch NIE unter Windows FÜR Windows programmiert hat, wird KEIN EINZIGES WORT aus dem Buch VERSTEHEN! Punkt Ende Basta Aus!

    <MasterC> fragt hier nach einem Buch für E I N S T E I G E R!

    Ihm dann "Microsoft Windows Programmierung für Experten" zu empfehlen zeugt entweder von vollkommener Ignoranz oder aber Inkompetenz (such es Dir aus)...

    Unbestritten kann er sich das Buch AUCH kaufen, aber lesen und verstehen wird er es erst NACHDEM er mit Hilfe von Petzold (oder mit wessen Hilfe auch immer)

    • das Nachrichtensystem
    • Fenster
    • Controls
    • und den ganzen anderen Windows-Scheiß

    gelernt hat!

    Frei nach dem Motto:Ich hab keine Ahnung was ne Message ist aber ich kann sie hooken.

    Ich find den Satz sooo geil, weil er sooo passend ist... 😃

    [ Dieser Beitrag wurde am 24.04.2003 um 21:33 Uhr von Hepi editiert. ]



  • Original erstellt von Hepi:
    [QB]Das zweite Buch beschreibt im einzelnen Prozesshandling, Threadhandling, Hooks und Treiberentwicklung (DDK auf CD dabei)QB]

    Also der Richter sagt nix über Treiberentwicklung 😞



  • Wenn du unbedingt C++ willst, gibt es ein Buch 'Programmierung mit MFC' von Microsoft Press , was aber aus ominösen Gründen nicht mehr zu haben ist allem Anschein nach. Ich habe es auch selber nicht , kann also nicht sagen was es taugt...



  • @tok: Schau dir nur einmal den ersten Satz von <MasterC> in diesem Thread an!

    @Frank II:

    VCL (Virtual Common Language oder so) ist zu sagen: Es handelt sich um Code für einen Interpreter der diese Kommandos dann in Maschinensprache der jeweiligen Umgebung übersetzt.

    *Autsch* Du weißt es nicht, oder? Dann solltest du sowas auch lieber nicht behaupten. Die VCL ist wie die MFC eine Klassenbibliothek, die zum einen die WinAPI kapselt, mit der man aber auch viel mehr machen kann.

    @<MasterC>: Konsole heißt nicht gleich 08/15! Und mit DOS hat die schonmal garnichts zu tun. In der Konsole kann man leicht und schnell eine Programmiersprache lernen, weil man sich nicht um die GUI oder so kümmern muss. Die Ausgabe ist schnell per std::cout oder printf() gemacht. Wichtig ist erstmal, dass du einigermaßen verstehst, was so intern abläuft - nicht, was der User sieht. Wenn du z.B. Pointer (zu deutsch: Zeiger) noch nicht verstanden hast, solltest du mit der WinAPI noch warten, denn da ist das Verständnis von Pointern unerlässlich. Weiterhin solltest du dich im Binärsystem und mit bitweisen und logischen Operatoren (&, |, ~, &&, || usw.) auskennen. Die bitweisen Operatoren braucht man oft um Flags zu setzen.



  • ok hab kapiert



  • Also an deiner Stelle würde ich erstmal MFC programmieren! So habe ich es auch gemacht bis ich das konnte......dann habe ich mir den Petzold besorgt weil ich MFC zu einfach fand und die WINAPI Tuts im Netz nich so das Wahre sind! Ich bin begeistert! Es ist sehr verständlich mit sehr viel Code (den man auch verwenden kann - weiß nich was das mit dem C soll)

    Kevin



  • Original erstellt von Surkevin:
    weiß nich was das mit dem C soll

    Ganz einfach: Petzold coded in ANSI-C und hat mit C++ nix am Hut! Dementsprechend sind alle Beispiele von ihm in reinem C und nicht in C++!



  • Thema VCL: Ich war gedanklich bei .NET

    Sei es drum. Ich hab mit dem Richter angefangen. Hat zwar gedauer, aber ich bin Stück für Stück vorwärts gekommen.



  • Mmh

    Oben hab ich mal gelesen. Erst Mfc und auf Winapi weil Mfc zu einfach ist?? Es geht doch eigentlich nicht darum was einfach ist, sondern das man das machen kann was mal will, zB eine ordentliche Benutzeroberfläche.

    Ok ich persönlich mag MFC nicht, sondern programmier nur auf Winapi nach Petzold, was wiederum nicht heißt ich würde nur c programmieren.
    Ich weiß nicht was der Rest der Welt davon hält, aber ich steck die ganze Funktionaliät meiner Programme in Klassen, bau dann eine Mutterklasse die alle verwaltet. Dann kommt eine Benutzeroberfläche und die wird dann nur noch in den Winproc(s) mit der Mutterklasse verbunden, also es werden halt Funtkionen in der Mutterklasse aufgerufen und mit Parameter versorgt.
    (zb WM_PAINT: Mutterklasse.paint(hwnd);)

    So kann man Benutzeroberfläche und Programmcode einigermaßen trennen, und relative einfach zb von Winapi auf MFC oder QT wechseln.

    Als Buch ist der Petzold als Einstiegslektüre echt super. Die meistens werdens wohl gar nicht genauer wisyen wollen :-). Denn zum Programmieren lang das vollkommen. (also für normale Anwendungen) Und sollte es nicht langen gibts die MSDN oder das internet.

    Grüße, Flow



  • hallo,

    @frank2: schon wieder AUTSCH, auch bei dotnet (c#, etc) handelt es sich nicht um einen interpreter sondern um einen vollwertigen compiler. der unterschied zum biesherigen besteht lediglich im zeitpunkt der übersetzung in maschinencode. während der entwickler beim bisherigen modell diesen zeitpunkt selbst bestimmen konnte, so wird bei dotnet der il (intermediate language) beim ersten programmstart in maschinencode übersetzt, somit kann der code auf die plattform optimiert werden (system, prozessor, ram, etc.). er wird aber nicht interpretiert, sondern compiliert, also nix interpreter...

    mfg
    murph



  • Ja, schlag mich! Jehova!Jehova!Jehova!Jehova!Jehova!Jehova!Jehova!Jehova!Jehova!

    Ist doch scheißegal. Fest steht es kommt ein Compilat raus und kein fertiger Maschinencode.


Anmelden zum Antworten