Ist nur Drag 'n Drop "verstehen" billig?



  • Hi!

    Also ich hätt da mal ne Frage:

    Wie es von mir sicherliche bekannt ist, das ich ein Problemm mit "Nicht-Selbergemacht" habe (siehe Forum Spiele-/Grafikprogrammierung: "Tools Vs. Selbstgemacht") bin ich genauso hier interessiert:

    Ich bin Schulisch auszubildener zu Technischen Assistenten für Informatik.
    Nu habe ich gelernt mit Borland und seinen Methoden Windows-Forms zu entwickeln. Da ich aber der Meinug war dass das ein wenig billig ist ein GUI zu entwickeln in dem Ich drag and drop verwende und mit vorgefehrtigten Funktionen verknüpfe (einfach ausgedrückt), fragt ich ihn ob das nicht ein wenig "billig" sei, nicht zumindest zu WISSEN wie ich das auch selbst schreiben könnte.
    Seine Antwort darauf: Das sei es überhaupt nicht. Es spricht nichts dagegen Stunden von vorgefertigter Programmiererleistung zu nutzen, wenn ich ein Auto bauen würde, würde ich auch nicht erst in die Metall-Smelzerei gehen und eine Schraube für den Motor entwickeln.

    Nun ich würde zu einem gerne wissen wie ihr darüber denkt, und zum anderen ein wenig mehr darüber erfahren was die Win-API ist (Ich dachte mir das wenn man bloss die API nutzt dass das die Obrigen Gedanken auslöscht; wobei ich nicht genau weiß was die API überhaupt ist)

    PS: Der Satz "Wer auf MFC und VCL verzichten will und direkt echte Windowsprogramme ohne Overhead und Bibliotheken schreiben will: willkommen im Lande von WinMain!" hat mich dazu bewegt die Diskusion hier zu eröffnen.



  • Ack.
    Wenn Du viel Zeit hast: Mach es selber.
    Die WinAPI ist einfach die Programmierschnittstelle für Windows. Also alles was irgendwie auf Windows läuft verwendet die WinAPI.



  • So ganz stimmt die Forenüberschrift nicht. Die WinApi erfordert einen Haufen Tipparbeit, bevor man ein Fenster erstellt hat. Da müssen nämlich die ganzen Fensterparameter eingegeben werden.
    Allerdings: Wenn Du das einmal als "Rohbau" gemacht hast, kannst Du es immer wieder benutzen und in neue Programme kopieren. Dann müssen nur relevante Stellen angepaßt werden.

    Was nun besser ist- API oder VCL oder MFC oder die alte OWL- das ist ein Glaubensstreit.

    VCL un MFC sind nur API-objektorientert gekapselt, setzen also C++-Kenntnisse voraus. Es gibt aber Fälle, wo Du auf die API zurückgreifen mußt. Es tut also immer gut, das Prinzip der API zu verstehen.
    Der Vorteil ist, daß die API-Programme sehr klar und einheitlich aufgebaut sind. Viele Dinge wiederholen sich in allen Programmen, z. B. Dinge wie:

    LRESULT CALLBACK WindWproc([Parameter])
    {
    switch (message)
       (...)
       case WM_DESTROY:
          PostQuitMessage(hWnd);
       (...)
    return DefWindowProc;)
    }
    

    und vieles mehr, so daß man sie nur zu kopieren braucht.

    Auf jeden Fall: Für Ein-/ Umsteiger aus anderen Programmsprachen (C, BASIC, PASCAL etc) ist die API weit besser verständlich als MFC, weil sie nicht gekapselt ist.
    Und um Fehler zu finden, mußt Du nicht erst endlos Container-Klassen kennen.



  • Wir haben in Schule mit Delphi gelernt, wie man sich seine Windowsfenster zusammenklickt. Feine Sache, geht schnell, funktioniert.. Doch wie Windows intern arbeitet, haben wir dabei nicht gelernt. Messages, MessageHandler oder Nachrichtenschleifen sind uns nicht bekannt. Sollten wir also eine neue Windowskomponente schreiben, die sich nich ohne Weiteres von den Standards ableiten lässt, dann siehts mau aus.
    MFC und Konsorten sind wie Stützräder: nur ohne lernt man richtig Fahrradfahren...

    mfg
    luX



  • PS: Der Satz "Wer auf MFC und VCL verzichten will und direkt echte Windowsprogramme ohne Overhead und Bibliotheken schreiben will: willkommen im Lande von WinMain!" hat mich dazu bewegt die Diskusion hier zu eröffnen.

    Umfangreiche Programme lassen sich mit vertretbarem Zeitaufwand nicht ohne Bibliotheken schreiben, viele Speziallösungen wiederum nicht ohne Kenntnis der WinApi - denn nicht für jede Aufgabe gibt es eine passende Bibliothek.

    Eine Möglichkeit, um langfristig beide Anforderungen zu erfüllen: schreib Deine eigene Bibliothek.



  • Nun, dann hab ich also richtig verstande: Api ist sozudagen ein "WindowsSDK" für C++ und MFC und das andere ist das nochmal als Objektorientiert noch benutzerfreundlicher?

    Hatt den jemand ein guttes Tutorial für Win API?



  • Nicht ganz. SDK (Software Development Kid) ist ein Programmpaket zur Erstellung und Kompilierung von API-Programmen. Die API ist die Anwender-Programmier-Schnittstelle (Application Programming Interface). D. i. ein Satz von Funktionen und Befehlen, mit denen man auf die graphischen Benutzerelemente von Windows (Buttons, Symbolleisten, Dialogfenster ect.) zugreifen kann. Die API ist reinstes C. MFC (Microsoft) oder VCL (Borland) ist die C++-Version der API. MFC und VCL sind nicht kompatibel.

    Benutzerfreundlicher? Naja, die API ist mit sicherheit leicheter verständlich. Die Objektwühlerei bei MFC finde ich bei der Fehlersuche finde ich doch etwas umständlich.

    Tutorials hier:
    http://www.win-api.de/
    http://pronix.linuxdelta.de/C/win32/index.shtml


Anmelden zum Antworten