Grund-wissen/anforderungen für WinAPI



  • Nicht entmutigen lassen, wer suchet der findet! 🙂

    Mir ging das auch so, aber je mehr man sich damit beschäftigt, um so mehr kommt man rein. Die API lernt man nicht über Nacht. Die Tutorials auf Win-API.de und Henkessoft.de bzw. pronix.linuxdelta.de sind hervorragend, aber es wird unumgänglich sein, daß Du sie Schritt für Schritt durchkaust. Schließlich ist das fast so viel Lernstoff wie eine neue Programmsprache. 👍

    Was einfacheres als MS-VC++ findest Du nicht, weil alle anderen C++Kompiler (Borland-C-Builder, Bloodshed-DEV-C++) genau so schwierig sind. Liegt an der Sprache... 😃



  • Dann denke ich an was eifacheres wie VC++

    VC++ ist nicht einfacher als WinAPI, sondern kapselt diese nur in Klassen.



  • Crossbow: Du verstehst nix, weil die meisten Tutorials eben Mist sind. Unzureichende Erklärungen oder schlichtweg falsche Angaben erleichtern einem das Verständnis eben nicht. Ich verstehe dein Problem aber auch nicht. Wenn dich das Thema echt interessieren würde, würdest du dir eben ein Buch für 30 € kaufen und dann wäre das Thema erledigt. Wer nicht wirklich lernen will, der soll sich nicht beschweren, wenn er auch nichts versteht...



  • hi,

    es geht aber auch ohne buch und ich denke ohne buch ist es einfach besser. ein buch endet irgendwann einmal, und dann kommst du an den punkt wo du doch das internetz nutzen musst, also infos suchen etc. wenn man das von anfang an lernt denke ich ist es besser. ich jedenfalls habe mir noch kein winapi-buch gekauft und komme auch sehr gut damit zurecht.

    gruss
    msp



  • Naja da wundert man sich noch warum es mit dem Forum langsam berg ab geht. Wenn du meinst irgendein dahin gekritzeltes "Tutorial" von irgendeinem 18 jährigen sei besser als das offizielle Entwicklerbuch zur Winapi von Microsoft, dan gute Nacht und ab dafür. Aber der thread artet nur unnötig aus belassen wir es jetzt mal dabei.



  • flower schrieb:

    Naja da wundert man sich noch warum es mit dem Forum langsam berg ab geht. Wenn du meinst irgendein dahin gekritzeltes "Tutorial" von irgendeinem 18 jährigen sei besser als das offizielle Entwicklerbuch zur Winapi von Microsoft, dan gute Nacht und ab dafür. Aber der thread artet nur unnötig aus belassen wir es jetzt mal dabei.

    I never heard such nonsens.

    Du glaubst tatsächlich, daß besagte Tutorials von 18 Jährigen Hobbyisten erstellt wurden 😮. Dann paß auf, daß Du Erhard Henkes nicht im Dunkeln begegnest. 😃

    Mein Lieber, mir scheint, Du redest wie der Blinde von der Farbe... bei allem Respekt. ⚠



  • hi,

    tut mir leid flowers aber antworten will ich noch:

    ich habe nicht geschrieben das ich tut von 18 jaehrigen benutze, ich habe gesagt das ich als quelle das internetz benutze. und mir ist igentlich relativ egal wie alt der mensch war bzw ist der deas tutorial geschieben hat. wer sagt dir denn das buecher immer die beste beschreibeung liefern? die leute die buecher darueber schreiben haben mit sicherheit schon 30 jahre erfahrung in winapi (wenns das schon so lange gibt 😃 ). also ich finde es falsch sich auf ein buch zu verlassen, sonst wuerde ja auch jeder glauben was in der bildzeitung steht.
    kurz gesagt: soviel quellen wie moeglich nutzen.

    gruss
    msp



  • flower schrieb:

    völliger quatsch wiedermal. ohne petzold kommst du in der windows welt überhaupt nirgends hin. wenn du natürlich irgendein kleiner frickler sein willst dann kauf dir kein buch und folge dem rat von flow cplus

    Ich finde das stimmt so nicht. Ich habe den petzold zwar und finde ihn echt gut, aber gerade die documentation aus der dxsdk, psdk oder auch der .net hilfe von mircosoft sind echt gut und machen es nicht gerade noetig ein buch zu kaufen.

    Und auch halb brauchbare tutorials von 18jaerhigen sind ok fuer den einstieg, mal soll ja nur mal ne idee von den ganzen techniken bekommen, damit man weiss was man womit machen kann und ob man jetzt dx, winapi .net oder mfc lernt und wovon wieviel ... etc..

    Ich mag buecher, ich hab regale voll davon nur progammier und pc buecher, (zuhause in Deutschland), den petzold habe ich zeitweise oft zu hand genommen, aber man kann das alles auch online aus der sdk holen und die ist gerade zum nachschlagen eh schneller.



  • Es gibt eigentlich gar keinen Sinn für mich dieses Buch zu kaufen.
    Weil dieses Buch mir zu komplex ist!
    Ich bin kein Genie das alles auf anhieb rafft und sich alles merken kann was es liest so wie ihr.
    Ich weiss, es gibt viele solche Leute, aber ich bin hald eben keiner.
    Wenn ihr schon nur die 2 - 3 Tut's da von der WinAPI lobt, dann ist sowieso klar das dieses Buch nix für mich ist.
    Da stehen ne paar Seiten Code und dann 3-4 Zeilen Text und dann wieder Code.
    Da wird kaum was erklärt, da wird einfach die Systematik erklärt aber nicht wozu jeder einzelne Befehl ist was für mich fatal ist.
    Wenn ich euch sage das dieses Tut (http://tutorial.schornboeck.net) für mich gerade angemessen ist und ich auch da noch rumknorzen muss und nicht alles auf anhieb begreiffe...
    Deswegen diese ewige Diskusion...!
    Da ich aber nicht aufgeben will suche ich und suche.
    Aber so wie es aussieht bin ich jetzt dann wirklich gezwungen das ganze aufzugeben.
    Viele Leute haben so ein C++ Buch in 2-3 Tagen durchgelsen und wissen dann alles.
    Bei mir braucht es meist ein Tag bis ich schon nur ne Seite wirklich verstehe und mir das meiste merken kann.
    Mit dem MS_DOS wissen weiss man vieleicht was Schleifen, Zeiger, Tempates, etc. sind, aber damit kennt man unmöglich die Befehle aus der WinAPI^was in jedem Tut oder Buch verlangt wird.
    Bei Tutorials die ihr einfach findet werden pro Seite vieleicht 3-4 Befehle erklärt, mehr nicht.
    Zum Beispiel der String, in manchen Tut's wird einfach erklärt das er Zeichenketten mit so und so viel byte oder bit speichert.
    Aber was soll man nun darunter verstehen, und wie speichert man zum Beispiel Zahlen oder Texte die diese Werte übersteigen...
    Diese fragen zerstören das ganze Tutorial.

    MfG Sämi

    P.s: Ein Tutorial ist für denn Anfänger viel Besser wenn es von nem 18 Jährigen geschrieben wurde als von einem mit 30 Jahren Programmier-erfahrung.
    Ganz einfach, weil für denn Erfahreneren alles total logisch ist und er Sachen gar nicht erklärt die für ihn so logisch sind nach all dem, was bei uns aber gerade nicht der Fall ist!



  • Buch hin, Aufnahmefähigkeit her -
    jeder Neuling schaut in den Windows Messageloop wie ein Schwein in's Uhrwerk.

    Du kommst einfach nicht drum herum, dich auch mal in unbekannte Gewässer vorzuwagen. Such dir halt ein Tutorial wo ein kleines lauffähiges Programm steht und gehe das dann Zeile für Zeile ab und was noch viel wichtiger ist,
    ändere immer kleine Sache und schau dir an, was passiert.



  • @CrossBow

    Nu schmeiß mal nicht gleich die Flinte ins Korn, jeder fängt mal klein an. Und viele hier (unter anderem ich) haben zuerst die Tutorials gemacht.
    Das Petzold-Buch ist auch für Anfänger gut verständlich und enthält umfangreiche und detaillierte Erklärungen. Es ist sozusagen ein Standardwerk für alle, die mit API zu tun haben, auch für Anfänger. Nix mit "3-4 Zeilen" Text. "3-4 Seiten" trifft es besser.
    Bevor Du Dir das Buch kaufst, nimm Dir halt mal die Tutorials vor. Ob Du es kapierst, kannst Du erst sehen, wenn Du sie durchgearbeitet hast. Danach kannst Du Dich immer noch für oder gegen das Buch entscheiden.

    Viele Leute haben so ein C++ Buch in 2-3 Tagen durchgelsen und wissen dann alles.

    Ja, solche Leute nennt man Fachidioten.

    Den, der nach 2-3 Tagen schon "Alles" weiß, mußt Du mir mal zeigen.



  • hi,

    entmutigen wollen wir dich hier alle sicher nicht geh ich mal von aus). fang erstmal an und wenn du fragen hast, dafuer ist ja das forum hier und dir wird hier mit sicherheit geholfen und auch etwas dazu erklaert wenn du es ausdruecklich moechtest und die fragen korrekt formuliert sind.

    wie waers wenn du selber ein tutorial schreibst. dann lernt man auch recht gut mit und wenn du es mit eigenen worten versuchst zu beschrieben was jenes und dieses tut dann hast du es auch verstanden.

    oder du versuchst zb einen ganz einfachen rechner zu basteln (zahlen von 0-9) mit addition, subtraktion, division und multiplikation. das denke ich ist fuer den anfang nicht so schwer wenn du mal verstanden hast wie ein helloworld winapi programm funktioniert. wie gesagt, wenn du fragen hast helfen wir dir hier gern.

    gruss
    msp



  • Ominion schrieb:

    Zum Beispiel sehe ich öfters, dass einige statt dieser Methode:

    Zahl += 3;
    Zahl2 -= 5;
    

    Diese ewig lange Variante nehmen:

    Zahl = Zahl + 3;
    Zahl2 = Zahl2 - 5;
    

    Um sowas zu vermeiden sind gewisse Grundkentnisse nötig.

    quatsch. es ist völlig egal welche variante man wählt. letztere ist meiner meinung sogar besser weil lesbarer...



  • Hi.

    Na ja, also zu direkten fragen der WinAPI habe ich eigentlich nicht's dagegen.
    Fangen wir doch gleich mal an 😃
    Vieleicht könnte mir ja jemand mal denn Code für Hello World in der WinAPI geben und den Zeile für Zeile erklären und auch was so alles dahinter steckt.
    Vieleicht einfach mal soweit (also nicht alles an einem Tag) das ich wie schon erwähnt soweit in der Lage wäre ein einfaches Rechenprog zu schreiben.
    Evtl, wäre ich noch froh für die If/Else Anweisung bezüglich der WinAPI, also wie man sie dort anwendet, evtl. noch was über die wichtigsten Variablen wie int, string und char.
    Damit wäre ich für denn Anfang schon mal befriedigt 😃

    MfG Sämi



  • Dafür ist dieses Forum nicht da. Dieses Forum war ursprünglich mal als Austausch für Entwickler gedacht. Wir können und wollen hier nicht immer nur Newbie Fragen diskutieren. Nichts gegen dich Cross_Bow, aber es gibt echt genügend Möglichkeiten sich erstmal selbst etwas zu informieren und wenn du dann KONKRETE Fragen oder Probleme hast, können wir dir gerne helfen. Aber ein bisschen Eigenarbeit musst du ehrlich gesagt schon leisten.



  • CROSS_BOW schrieb:

    Evtl, wäre ich noch froh für die If/Else Anweisung bezüglich der WinAPI, also wie man sie dort anwendet, evtl. noch was über die wichtigsten Variablen wie int, string und char.

    Also irgendwie sieht das für mich so aus, als würdest Du denken, dass die WinAPI eine Programmiersprache ist, das ist sie aber NICHT. Die WinAPI ist die Schnittstelle für das Windows-Betriebssystem, nicht mehr, aber auch nicht weniger.

    Ich hab' mich mal an einem Hello-World probiert:

    #include <windows.h>
    
    // Funktion für die Nachrichtenbehandlung für unser Fenster
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    // Name unserer Fensterklasse
    const char szAppName[] = "HelloWorldFenster";
    
    // Programm-Einstiegspunkt
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
    
    	// eine Variable vom Typen WindowClass anlegen
    	WNDCLASS wc;
    	// Es soll bei vertikalen und horizontalen Größenänderungen neu gezeichnet 
    	// werden
    	wc.style         =  CS_HREDRAW | CS_VREDRAW;
    	// Zeiger auf Nachrichten-Behandlungs-Funktion, welche aufgerufen wird, 
    	// wenn Nachrichten an unser Fenster gesendet werden
    	wc.lpfnWndProc   =  WndProc;
    	// kommt später
    	wc.cbClsExtra    =  0;
    	// kommt später
    	wc.cbWndExtra    =  0;
    	// Instanz-Handle weiterreichen
    	wc.hInstance     =  hInstance;
    	// Cursor für unser Fenster laden (normaler Zeiger)
    	wc.hCursor       =  LoadCursor(NULL, IDC_ARROW);
    	// Icon, welches in der Titelleiste angezeigt wird
    	wc.hIcon         =  LoadIcon(NULL, IDI_APPLICATION);
    	// Brush für den Hintergrund laden
    	wc.hbrBackground =  reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
    	// Name dieser erstellten Fensterklasse übergeben
    	wc.lpszClassName =  szAppName;
    	// Unser Fenster hat kein Menu
    	wc.lpszMenuName  =  0;
    
    	// Fensterklasse bei Windows registrieren
    	RegisterClass(&wc);
    
    	// Fenster auf Basis der oben erstellten Fensterklasse erstellen
    	HWND hWnd  = CreateWindowEx(0,                    // kommt später
    	                            szAppName,            // Name der Fensterklasse
    	                            "Hello World",        // Text in der Titelleiste
    	                            WS_OVERLAPPEDWINDOW,  // Standard-Fenster
    	                            100,                  // x-Position
    	                            100,                  // y-Position
    	                            200,                  // Breite des Fensters
    	                            200,                  // Höhe des Fensters
    	                            0,                    // Später
    	                            0,                    // Später
    	                            0,                    // Später
    	                            0);                   // Später
    
    	ShowWindow(hWnd, SW_SHOW);  // Fenster anzeigen
    	UpdateWindow(hWnd);         // Fenster aktualisieren
    
    	// Nachrichten-Schleife starten
    	MSG msg;
    	while (GetMessage(&msg, NULL, 0, 0)) {  // nächste Nachricht holen
    		TranslateMessage(&msg);  // später
    		DispatchMessage(&msg);   // später
    	}
    
    	return 0;  // Programm beenden
    }
    
    // Nachrichten-Behandlungs-Funktion
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    	// welches Nachricht wurde denn geschickt?
    	switch (message) {
    		case WM_DESTROY:  // Fenster wird zerstört
    			PostQuitMessage(0);  // Nachricht schicken, um Anwendung zu beenden
    		break;                   // Hierdurch wird die Nachrichten-Schleifen beendet
    	}
    
    	// Keine der oben genannten Nachrichten?
    	// Dann Nachricht an die Standard-Nachrichten-Verwaltung weiterleiten
    	return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    Mehr sage ich jetzt aber auch nicht mehr dazu.



  • mantiz schrieb:

    Ich hab' mich mal an einem Hello-World probiert:

    das kannste auch einfacher haben:

    MessageBox (0, "Hello, World", "HelloWorldWindow", 0);
    

    😉



  • hmpf 😃



  • Ziemlich sinnfreie Kommentare mantiz! Man muss in den Kommentaren irgendwie erklären warum man etwas macht, sonst bringt es nichts.



  • Er wollte jede Zeile kommentiert haben, klar macht das keinen Sinn, aber so wollte er es haben. Man kann in ein paar Zeilen Code nicht erklären, wie Windows arbeitet, dazu muss man schon ein 'wenig' mehr lesen und verstehen.

    Aber ist mir auch egal, mach's besser.


Anmelden zum Antworten