hwnd und co



  • Hallo an alle Programierer und Programmiererinnen,

    ich bin ein totaler Newbie in C++ und habe noch nichts brauchbares zu den instances und Handles (z.B. hwnd) gefunden. Mich interessiert nicht nur wie man das anwendet sondern auch wie es funktioniert, ich will quasi den Hintergrund kennenlernen.

    Danke an alle die mir helfen können.

    Vielleicht hilft es euch zu wissen das ich schon ein fortgeschrittener Java-Programmierer bin und aus Performancegünden auf c++ umsteigen will.



  • Wenn ich dich richtig verstehe meinst du damit die WinAPI, sie ist vollkommen in C geschrieben und für Windows-Programme gedacht.

    Siehe auch: http://de.wikipedia.org/wiki/Windows_Application_Programming_Interface

    Wenn du einfach nur Fenster erstellen willst gibt es bessere Methoden die auch Betriebsystem unabhängig sind.

    Siehe dazu: http://www.c-plusplus.net/forum/81596-full

    Aber als Anfänger sollte man erst mal bei der Console bleiben, bis man die Grundlagen beherrscht.



  • Danke für die rasche Antwort, aber welche Grundlagen wären das? Einige Programme habe ich schon mit der Konsole geschrieben.


  • Mod

    Einige Programme habe ich schon mit der Konsole geschrieben.

    Das sagt nichts aus. Besorge dir lieber ein Grundlagenbuch mit welchem du die nötigen Dinge erlernst.

    Kennst du nun schon die Unterschiede zwischen Objekten und Referenzen - und was Zeiger sind?



  • Ich habe schon ein Grundlagenbuch aber es ist schon etwas älter und ich habe das Gefühl es ist nicht ganz vollständig, deswegen habe ich auch gefragt.



  • Handles und OS-interne Datenstrukturen und deren Verwaltung sind schon sehr speziell. Mir fällt da eigentlich nur Jeffrey Richter als Buchautor ein, du kannst ja bei dem (Online) Buchhändler deines Vertrauens mal suchen. Für den Normalfall muss dich aber nicht interessieren, was genau ein Handle ist und wie sie implementiert sind.



  • @breikopf Ist dir klar dass WinAPI handles nichts mit Standard-C++ zu tun haben? Den Kram gibt es so nur auf/für Windows, deshalb steht dazu auch nichts in C++ Büchern. (Oder nur sehr am Rande.) Wenn du darüber etwas wissen willst, musst du nach Windows/WinAPI Programmierung suchen, nicht nach C++.



  • Für native Winapi32 Programmierung muss man sich schon gut auskennen und sollte auf jedenfall über einen ausreichenden Vorrat an Baldrian Tee oder Beruhigungstabletten verfügen.

    Klar für den Anfang um mal zu gucken ok, aber du öffnest damit die Büchse der Pandora die du so schnell nicht mehr zukriegst.

    Du solltest einen Blick auf GUI Frameworks werfen, die das ein wenig wegkapseln.



  • @breikopf
    Du kannst dir ein Handle als alternative Darstellung eines Zeigers vorstellen.
    Ein HWND identifiziert ein Fenster-Objekt das vom OS verwaltet wird.
    Der grösste Unterschied zwischen Handles und Zeiger ist, dass du über das Handle nicht direkt auf das Objekt zugreifen kannst. Du kannst es nur verwenden indem du es an OS Funktionen übergibst die dann halt irgendwas mit dem Objekt (z.B. Fenster) machen.

    Davon abgesehen ist ein Handle nix spezielles.



  • an alle.
    jetzt weis ich ja dass ich Handels nicht brauche,habe aber trotzdem einen groben Plan, das find ich super 👍



  • breikopf schrieb:

    jetzt weis ich ja dass ich Handels nicht brauche

    Abgesehen davon, dass es Windows Handles gibt, ist ein Handle ein abstraktes Konzept, dass man schon öfter mal brauchen kann.



  • Bei C z.B. File-Handles... Werden auch für Sockets benutzt.



  • Läßt sich auch bei Wikipedia nachlesen: Handle



  • Im Prinzip ist das ne ID, womit du bei Bedarf und bei Nutzun entsprechender Funktionen Zugriff auf irgendwelche Dinge kriegst.

    Ein Index eines Array könnte man auch nur als Handle sehen, Zugriff bekommt man dann per []-Operator.


Anmelden zum Antworten