Rad tool für WinApi



  • sothis_ arbeitest du auch mit der "reinen" winapi?



  • sidobushido schrieb:

    sothis_ arbeitest du auch mit der "reinen" winapi?

    meist nur noch mit kleineren subsystemen um zum beispiel platformübergreifende funktionalität zu implementieren ohne auf größere frameworks wie qt zurückgreifen zu müssen.



  • sidobushido schrieb:

    Würdet ihr mir zum Petzold raten? In den Tutorials ist ja anscheinend nur ein kleiner Teil beschrieben. Also z.b. ein Leeres fenster. aber wie man buttons checkboxen und listen und so macht wird nicht erklärt

    Dann hast Du ein ziemlich mieses Tutorial gemacht, denn ein Tut, das beim leeren Fenster aufhört, ist nichts wert. So eines kenne ich gar nicht.

    In den WinAPI-FAQ habe ich eine ganze Liste von Tutorials zusammengestellt, die solltest Du mal gründlich durcharbeiten.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-217065.html

    Wozu willst Du einen Code-Generator? Willst Du Programme zur zusammenbasteln, oder willst Du sie auch verstehen 💡 - ist nämlich fürs Debugging und für gewissen Modifikationen äußerst wichtig. ⚠



  • würdet ihr mir raten, das ich den Code der WinApi komplett auswendig lerne, also das ich ihn schreiben kann ohne ins Tutorial zu schaun, oder sollte ich lieber die gleichbleibenden Sachen rauskopieren (natürlich trotzdem kapieren usw) und dann ändern wie z.b.

    WNDCLASS   wc;
       wc.style         =  CS_HREDRAW | CS_VREDRAW;
       wc.lpfnWndProc   =  WndProc;
       wc.cbClsExtra    =  0;
       wc.cbWndExtra    =  0;
       wc.hInstance     =  hInstance;
       wc.hCursor       =  LoadCursor(NULL,IDC_HAND);
       wc.hIcon         =  LoadIcon(NULL,IDI_QUESTION);
       wc.hbrBackground =  (HBRUSH)GetStockObject(WHITE_BRUSH);
       wc.lpszClassName =  "Ein eigenes Fenster";
       wc.lpszMenuName  =  NULL;
       RegisterClass(&wc);
    


  • ich glaube ihr habt das mit dem Generator bisschen falsch verstanden.
    Ich meinte damit nur so ein Tool wie es z.b. bei den ganzen GUIs auch gibt, bei dem man Fenster "Zusammenklicken" kann. Natürlich wollte ich da erstmal lernen, ohne so ein Programm zu arbeiten aber das erleichtert und beschleunigt die Arbeit!
    Ihr wollt mir doch nicht erzählen, das ihr mit eurer GUI immer den ganzen Code eingibt und kein Rad tool benutzt?



  • Ihr wollt mir doch nicht erzählen, das ihr mit eurer GUI immer den ganzen Code eingibt und kein Rad tool benutzt?

    Doch, genau das wollen wir dir erzählen, reine WinAPIler machen das so.



  • sidobushido schrieb:

    ich glaube ihr habt das mit dem Generator bisschen falsch verstanden.
    Ich meinte damit nur so ein Tool wie es z.b. bei den ganzen GUIs auch gibt, bei dem man Fenster "Zusammenklicken" kann. Natürlich wollte ich da erstmal lernen, ohne so ein Programm zu arbeiten aber das erleichtert und beschleunigt die Arbeit!
    Ihr wollt mir doch nicht erzählen, das ihr mit eurer GUI immer den ganzen Code eingibt und kein Rad tool benutzt?

    1. Du solltest auch verstehen, was der Unterschied zwischen GUI und RAD ist. Die GUI ist die Windows-Oberfläche (graphic User interface), die RAD-Tools dienen dazu, eine solche GUI zu erstellen. Am Ende (unter Windows) ist es aber immer die gleiche.

    2. Auch wer ein RAD-Tool benutzt, tut gut daran, die Prinzipien seiner Programme zu verstehen. Du muß nicht den ganzen Code auswendig können, aber Du solltest zumindest kapieren, was ein Handle, eine WNDCLASS, ein GDI und eine Messageloop ist und wie sie funktioniert.

    Wenn man das mal hat, ist gegen Copy-Paste-Programmierung nichts einzuwenden. Aber denk dran: Wenn Fehler drin sind, kopierst Du die gleich mit, und die sucht Dir kein RAD-Codegenerator raus.



  • wie gesagt, mit eurer GUI. Hier waren also qt wx usw gemeint



  • ok dann muss ich das also nicht auswendiglernen.
    Ich hab halt Angst davor, dass man zukünftiger Arbeitgeber sagt:
    Und was kannst du? Ich: C++ und WinApi Er: ok dann mach mal ein kleines WinAPi programm und ich schau zu Ich: ok dann muss ich aber erst ins internet um code rauszukopieren 😃 kommt bischen blöd... ( ich werde FIAE )



  • sidobushido schrieb:

    ok dann muss ich das also nicht auswendiglernen.
    Ich hab halt Angst davor, dass man zukünftiger Arbeitgeber sagt:
    Und was kannst du? Ich: C++ und WinApi Er: ok dann mach mal ein kleines WinAPi programm und ich schau zu Ich: ok dann muss ich aber erst ins internet um code rauszukopieren 😃 kommt bischen blöd... ( ich werde FIAE )

    Nur mal als Hinweis: Es ist nicht nötig, für jeden Gedanken einen eigenen Post einzustellen. Es gibt den Link "Editieren", der an jedem Deiner eigenen Posts sichtbar ist.

    Zu Deinem Problem: Wenn es um die Qualifikation bei der Stellenbewerbung geht, sollte man zumindest die WNDCLASS-Definitionen und die wichtigsten WM_-Botschaften auswendig kennen. Die kommen nämlich in nahezu JEDEM WinAPI-Prog vor.

    Außerdem solltest Du zwischen WinAPI und C++ unterscheiden. Denn die WinAPI ist NICHT C++, sondern C. C++ wären Containerklassen, die die WinAPI wrappen, Beispiel MFC.



  • Elektronix schrieb:

    Nur mal als Hinweis: Es ist nicht nötig, für jeden Gedanken einen eigenen Post einzustellen. Es gibt den Link "Editieren", der an jedem Deiner eigenen Posts sichtbar ist.

    neuerdings auch für unregistrierte benutzer? 🙂



  • Elektronix schrieb:

    sidobushido schrieb:

    ok dann muss ich das also nicht auswendiglernen.
    Ich hab halt Angst davor, dass man zukünftiger Arbeitgeber sagt:
    Und was kannst du? Ich: C++ und WinApi Er: ok dann mach mal ein kleines WinAPi programm und ich schau zu Ich: ok dann muss ich aber erst ins internet um code rauszukopieren 😃 kommt bischen blöd... ( ich werde FIAE )

    Nur mal als Hinweis: Es ist nicht nötig, für jeden Gedanken einen eigenen Post einzustellen. Es gibt den Link "Editieren", der an jedem Deiner eigenen Posts sichtbar ist.

    Zu Deinem Problem: Wenn es um die Qualifikation bei der Stellenbewerbung geht, sollte man zumindest die WNDCLASS-Definitionen und die wichtigsten WM_-Botschaften auswendig kennen. Die kommen nämlich in nahezu JEDEM WinAPI-Prog vor.

    Außerdem solltest Du zwischen WinAPI und C++ unterscheiden. Denn die WinAPI ist NICHT C++, sondern C. C++ wären Containerklassen, die die WinAPI wrappen, Beispiel MFC.

    1. Sehe ich nicht. Eventuell nur für Registrierte?
    2. ok dann werde ich mal die Grundlagen lernen,
    also den Callback, WinMain parameter, wndclass, create window und message.
    Was ist eigentlich der Unterschied zu CreateWindow und CreateWindowEx?
    Und noch ne Frage: Werden Buttens usw. Standartmäßg mit Ressourcen (ob von
    Hand oder mit Editor ist egal) gemacht oder gibt es da auch nen reinen WInApi
    Code? Oder ist das der reine WInApi code?
    Kam mir nur bisschen komisch vor, man macht sein eigenes erstes Fenster usw,
    und auf einmal, muss man .rc und .h Dateien einbinden.
    3. Von der MFC hab ich nur schlechtes gehört. Außerdem habe ich vor mich nach
    der WinApi mit DirectX zu beschäftigen, und da sei die MFC zu fett. Und ich
    habe sowieso nur die Express Version also scheidet das aus. Aber
    warscheinlich wolltest du mich nur darauf hinweißen, dass ich nicht denke,
    dass WinApi C++ ist 😃



  • bushidosido schrieb:

    1. Sehe ich nicht. Eventuell nur für Registrierte?

    Bingo 😃

    2. ok dann werde ich mal die Grundlagen lernen,
    also den Callback, WinMain parameter, wndclass, create window und message.
    Was ist eigentlich der Unterschied zu CreateWindow und CreateWindowEx?

    CreateWindowEx erhält einen zusätzlichen Parameter (dwExStyle), außerdem wird als Fensterklasse die Struktur WNDCLASSEX, die zwei zusätzlichen Member(cbSize und hIconSm) verwendet.

    Und noch ne Frage: Werden Buttens usw. Standartmäßg mit Ressourcen (ob von
    Hand oder mit Editor ist egal) gemacht oder gibt es da auch nen reinen WInApi
    Code? Oder ist das der reine WInApi code?
    Kam mir nur bisschen komisch vor, man macht sein eigenes erstes Fenster usw,
    und auf einmal, muss man .rc und .h Dateien einbinden.

    Du kannst jede Art von Resourcen auch mit normalem Code erstellen, ist aber bei größeren Projekten umständlich. Man übergibt der Funktion CreateWindow als Style die Art von Fensterstil, die man haben will, als String (z. B. "Button"). Für manche Fenstertypen gibt es auch eigene Funktionen (z. B. CreateToolbar), die intern die CreateWindow aufrufen und Standardparameter übergeben. Der Vorteil der Resourcen ist halt, daß Du die Dateien für andere Projekte wiederverwenden oder die Resourcen auch nach dem Compilieren aus der Exe-Datei extrahieren und verändern kannst. Ein großer Vorteil ist auch die Verwendung des Resourcen-Editors (was Du im WinAPI-Code nicht kannst). Und vieles mehr.
    Näheres dazu ist in den Tutorials in dem FAQ-Link erläutert.

    3. Von der MFC hab ich nur schlechtes gehört. Außerdem habe ich vor mich nach
    der WinApi mit DirectX zu beschäftigen, und da sei die MFC zu fett. Und ich
    habe sowieso nur die Express Version also scheidet das aus. Aber
    warscheinlich wolltest du mich nur darauf hinweißen, dass ich nicht denke,
    dass WinApi C++ ist 😃

    MFC ist nicht automatisch schlecht. Die MFC enthält einen *Teil* der WinAPI als Wrapperklassen. Wer sich damit auskennt, erspart sich bei Standardprogrammen viel Tiparbeit. Bei Spezialitäten muß man aber doch schon mal auf die WinAPI zurückgreifen (ist ohne weiteres ohne zusätzliche Bibliotheken möglich). Außerdem erschwert die MFC mitunter das Debugging, wenn Du nicht weißt, welche Objekte wie abgeleitet sind.

    Also auch bei MFC-Programmierung sollte man die Grundlagen der WinAPI beherrschen.


Anmelden zum Antworten