![]() |
Anzeige:
|
|
|||||||
| Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Eine ganz dumme, aber sehr interessante Frage... Was ist eigentlich ein Handle
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Ein Handle ist ein Zeiger auf eine oder ein Schlüssel zu einer Datenstruktur, auf die ein Satz von Funktionen zugreift.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Ein Handle ist so etwas wie ein Griff; im Softwarebereich also ein Wert, der einem den Zugriff auf bestimmte Daten ermöglicht. Ein Handle auf eine Bitmap ist also jener Wert, der mir den Zugriff auf die Eigenschaften und Daten dieser Bitmap ermöglicht. Das Ergebnis der Create-Funktionen in XProfan ist in der Regel ein solches Handle. Funktionen, die auf das erzeugte Objekt, sei es nun ein Bild, Icon, Dialogelement, eine Liste, ein String-Grid oder was auch immer. zugreifen und etwas damit anfangen, benötigen dieses eindeutige Handle.
Erzeuge ich zum Beispiel mehrere Editfelder in einem Dialog, hat jedes ein eigenes eindeutiges Handle. Der Funktion Gettext$() übergebe ich nun das Handle des Editfeldes, dessen Inhalt ich ermitteln will. (Systemtechnisch gesehen verbergen sich hinter dem Wert des Handles oftmals Speicheradressen, an denen die Informationen über das Objekt liegen. Das muss allerdings nicht zwingend so sein. Es wären auch Handles denkbar, die eine Ordnungszahl o.ä. darstellen.) Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
#4 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 17.07.2002
Ort: Berlin
Beiträge: 586
|
|
|
|
|
|
|
#5 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
@Roland und @Carone: Zu ungenau, damit kann man in der Praxis nichts anfangen.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT Geändert von AHT (07.03.2009 um 12:30 Uhr) |
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 26.02.2009
Ort: Bonn
Alter: 28
Beiträge: 10
|
Also ich finde hier wurde einiges gesagt, was sehr richtig ist. Und meiner Meinung nach waren einige Beschreibungen nicht zu ungenau, sondern umgekehrt eher zu spezifisch.
Denn in der Praxis ist es meiner Ansicht nach gerade nicht wichtig, was letztlich hinter der Zahl, die man "Handle" nennt, steckt, sondern nur, dass man darüber ein bestimmtes "Objekt" (Beispiele wurden ja schon genannt) gegenüber einer Schnittstelle (Satz von Funktionen) eindeutig identifizieren kann. MfG Sebastian |
|
|
|
|
|
#7 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
In der Praxis reicht es mir, zu wissen, auf was ich mit dem Handle zugreifen. Wenn ich das Handle eines Editfeldes habe, dann kann ich in das Editfeld schreiben, es auslesen, sein Aussehen ändern und manches mehr. Dem Anwendungsprogrammierer ist es in der Regel völlig egal, was sich nun genau hinter dem Wert verbirgt, ob er nun eine Adresse, Listennummer oder sonst etwas ist. Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#8 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Ein Pointer oder ein Schlüssel...
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#9 (Direktlink) | ||||
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Ich will es etwas genauer haben, warum kommt später.
Nimms mir nicht übel, aber es gibt da eine alte "Bauernregel": Zitat:
Fazit: Man kann mit solchen Aussagen nicht arbeiten - und hier soll am Ende etwas stehen, mit dem man arbeiten kann. Es soll also ans "eingemachte" gehen und nicht an das vergammelte Kompott vom letzten Mittag. Zitat:
Zitat:
Wie gesagt, das spiegelt meinen Wissenstand wieder - der ist nicht vollständig und an manchen Ecken wohl auch nicht korrekt. Ich fange noch einmal mit Franks Antwort an, die finde ich schon recht gut: Zitat:
Die Datenstruktur nennen wir mal hier Objekt (oder Object), die nennt Microsoft auch so, und dann wird es einfacher. Die API GetGuiResources bietet hier für den Anfang scheinbar etwas Hilfe. Über dies API kann man die Anzahl bestimmter Objekte ermitteln, die ein Prozess erzeugt hat. Der zweite Parameter gibt an, für welche Art von Objekt die Anzahl ermittelt werden soll - halt stopp - es gibt unterschiedliche Arten von Objekten?? Wenn es unterschiedliche Arten von Objekten gibt, gibt es vielleicht auch unterschiedliche Arten von Handles! Und genau das ist der Fall. Was ein Handle genau im Einzellfall ist, ist also abhängig von dem Objekt, auf das ein Handle verweist. Es gibt Userhandles (Fensterobjekte), GDI Handles (Handles auf Objekte zum Zeichnen), Kernelhandles (Handles auf Objekte, die in der Regel durch APIs der Kernel32.dll erzeugt werden) und Handles auf Speicherbereiche - mehr sind mir im Augenblick nicht bekannt. DEsweiteren ist das, was ein Handle ist, abhängig davon, wie das jeweilige Betriebsystem diese Objekte verwaltet. Microsoft hat zwei Arten von Betriebsystemen herausgebracht a) Windows 95/98/ME b) NT basierende Betriebsysteme Was ein Handle ist, ist bei a) und b) nicht gleich - da ich von a) diesbezüglich keine Ahnung habe und die Technik veraltet ist, kann ich hier allerhöchsten Auskunft über b) geben
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
||||
|
|
|
|
|
#10 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
![]() Ich denke, wenn ich "nur" API benutze, benötige ich dieses Wissen doch im Grunde gar nicht. Sollten in einer neuen Windowsversion Änderungen am Handle vorgenommen worden sein, so werden die ja innerhalb der API wieder ausgeglichen sein, um kompatibel zu bleiben. Für den Programmierer ändert sich dadurch (in der Regel) aber nichts. Anders ist es, wenn man nach deiner Methode vorgeht und bei den wesentlich Sachen gar nicht mit der API arbeitet, sondern sich mehr manuell durch den Handle-und Speicher-Dschungel hangelt, um seine Informationen zu erhalten. Diese Methode ist sicherlich sehr effektiv (Hut ab vor soviel Try&Error), da auch Beschränkungen durchbrochen werden können, die vom Betriebssystem (warum auch immer) auferlegt wurden. Gab es jedoch bei einem neuen Betriebssystem dort Änderungen, bist du gezwungen, in deinen Programmen Anpassungen vorzunehmen. Daher müsste wohl bei verschiedenen Systemen auch verschieden verfahren werden, und deine Programme an jedes neue System angepasst werden. Dieses Problem haben die Nur-API-Benutzer sicher seltener... Ich hoffe, ich hab das so mal überblickend zusammen gefasst.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
|
#11 (Direktlink) | ||||
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Es ist so richtiger: Wenn ich nichts spezielles programmieren will, benötige ich dieses Wissen nicht. Manch einer kommt ja auch mit dem zurecht, was XProfan von sich aus bietet - der braucht, um glücklich zu werden, auch keine API Zitat:
Zitat:
Zitat:
Irrtum, die schlagen sich auch mit a) und b) herum. Es geht mir um das, was du anfänglich als "Schlüssel" bezeichnet hast und jetzt korrekter als "Liste" darstellst. Um das mal weiterzuführen: Einige Objekthandles sind also direkte (oder indirekte?) Pointer auf einen (auslesbaren?) Speicherbereich, andere wiederum sind Einträge in einer Liste - oft der Index dieses Eintrages. Es geht mir darum, welche Objekthandles in welcher Liste zu finden sind und welche Objekthandles einfach nur Pointer sind. Welche Objekte gehören also, neben den Fenstern, zu den Userobjekten? Hat sich mal jemand damit befasst?
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
||||
|
|
|
|
|
#12 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#13 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Soweit ich die habe, werden die Infos kommen - anhand einiger Beispielprogramme, damit man selbst nachsehen und mitdenken kann. Die Infos, von denen ich hier Rede, habe ich nirgendwo gelesen sondern basieren auf dem, was ich bei der Arbeit mit Windows selbst sehe - die sind also nicht komplett. Es gibt hier ja genug Leute, die viel mehr können, als nur Code von einer Ecke auf die andere zu kopieren. Vielleicht denkt ja manch einer von denen hier mit, bringt eigene Gedanken ein oder komplettiert hier oder da etwas - wäre schön.
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
|
|
|
|
|
|
#14 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.079
|
Hochinteressant... Mir fehlen nur leider sämtliche Voraussetzungen, Konzepte, Tools, Sprachregelungen, Übersichten, Konventionen, Algorithmenkenntnisse, programmatisch-philosophischen Konzepte, Durchblick und (vor allem) die Zeit dazu, das alles zu erforschen. Und ich fürchte, da bin ich beim einen oder anderen Punkt nicht allein.
Der Witz daran ist: Ich war (in anderen Programmierdingen) früher ganz ähnlich, und konnte nicht verstehen, daß andere mir nicht mal ansatzweise folgen konnten. Allerdings hat sich dann herausgestellt, daß das auch ein Hindernis war, ein normales, bürgerliches Leben zu führen, sich anstädig um seine Alte zu kümmern und 16 Kinder in die Welt zu setzen. M.a.W.: Es ist eine Frage der Prioritäten. Nichts-desto-Trotz: Aus meiner Sicht bitte unbedingt weitermachen, solange das so tolle Resultate bringt! Man fühlt sich auch irgendwie gut, wenn da von den "M$-Programmiergöttern" gezeigt wird, daß sie auch nur mit Wasser kochen... Herzliche Grüße aus Wien P. Specht
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#15 (Direktlink) | ||
|
Super-Moderator
![]() Registriert seit: 15.02.2009
Beiträge: 10.786
|
Zitat:
Zitat:
__________________
______________ Bitte Schnelltest durchführen: Neuer Virus, ahnungslose User seit Monaten infiziert! Mfg AHT |
||
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| DFÜ Einwahl Handle Fehler 6 | Drawfit | Netzwerke | 2 | 03.02.2004 19:51 |