anoniem Geplaatst: 16 mei 2004 Delen Geplaatst: 16 mei 2004 Wat is een Handle? Deze vraag stel ik niet zozeer omdat ik wil gaan programmeren, maar omdat ik problemen heb met windows 98. explorer.exe "vreet" handles waardoor de PC vastloopt. Zie voor meer details mijn vraag in de "Windows OS", "Memory Leak in Windows 98 SE (door verkenner)". Bedankt voor de moeite, Willem Quote Link naar reactie
anoniem Geplaatst: 17 mei 2004 Auteur Delen Geplaatst: 17 mei 2004 Een handle is een handvat, iets waarmee je een object kan vasthouden. Ook wordt een object door zo'n handle geïdentificeerd omdat ieder handle uniek is. De meeste objecten hebben een handle en via zo'n handle kun je ook iets doen met die objecten. Zie het als een enorm grote parkeerplaats met allemaal auto's. Als je een specifieke auto iets wil laten doen of er iets mee wilt doen, dan zou je alle auto's af moeten gaan om te kijken of het model goed is, het type goed is, de kleur goed is, etc., totdat je eindelijk de juiste auto hebt. Als je nu op alle auto's een vlaggetje plaatst met uniek kleurtje, dan hoef je alleen de unieke kleur op te zoeken en je hebt de juiste auto te pakken. Misschien erg simplistisch, maar het versnelt wel de werking van Windows. Een flink aantal API functies (functies die in Windows zelf zitten en waar de programmeur gebruik van kan maken) maken gebruik van die handles, voornamelijk vanwege identificatie van het object. Quote Link naar reactie
anoniem Geplaatst: 17 mei 2004 Auteur Delen Geplaatst: 17 mei 2004 Zonder Handles zou Windows eigenlijk onmogelijk worden :) Quote Link naar reactie
anoniem Geplaatst: 5 juni 2004 Auteur Delen Geplaatst: 5 juni 2004 zonder handles is Windows onhandelbaar... :lol: Vergelijk een handle met het handvat van een keukenmes. Zonder handvat is zo'n mes lastig vast te houden en heb je een grotere kans dat je je in je vingers snijdt. (Tenzij het een bot mes is natuurlijk.) Een handle kun je eigenlijk vergelijken met een pointer binnen Windows. Het is overigens geen rechtstreekse pointer naar een geheugenadres maar meer een index in een tabel van handles. Deze tabel wordt door Windows intern beheerd, aangezien fysieke geheugenadressen binnen Windows nog wel eens kunnen veranderen. (Dit omdat Windows continu het geheugen optimaliseert of naar de swapfile schopt.) Door handles te gebruiken heb je een langere weg te gaan om het fysieke adres van een object te bepalen maar als voordeel kun je dus flexibeler met geheugen omgaan. Vandaar dat MS voor deze oplossing heeft gekozen. (En niet alleen MS, overigens.) Het verschil in snelheid is overigens vrijwel onmerkbaar. Nu denken velen dat wanneer ze met pointers onder Windows werken dat deze pointers wel naar een fysiek adres wijzen maar dit is maar gedeeltelijk waar. Je zult namelijk eerst een blok geheugen moeten alloceren en dan krijg je dus een handle naar dit blok terug. Dit blok kun je vergroten of verkleinen indien nodig. Je pointers zijn dan ook gewoon pointers binnen dit blok geheugen. Dus als je via een pointer een geheugenadres benadert dan wordt via de geheugen-handle met daarnaast de pointer (offset binnen geheugenblok) het exacte adres bepaald van hetgeen je wilt benaderen. Wat is het probleem met handles? Wel, Windows heeft dus een tabel waarin deze handles worden opgenomen en deze lijst kan wel eens vol raken als er erg veel handles gebruikt worden. Gelukkig heeft iedere applicatie zijn eigen handles-tabel en kan deze tabel in de nieuwere Windows versies vrij groot zijn. Maar ja, als er geheugen wordt verplaatst dan moet Windows ook extra veel handles aanpassen, wat het geheel dus weer verder vertraagd. Vooral als je weinig geheugen hebt of lekkende applicaties kan dit erg vervelend zijn... Quote Link naar reactie
anoniem Geplaatst: 11 juni 2004 Auteur Delen Geplaatst: 11 juni 2004 [quote:236c9e2ccf="Willem-2"]Wat is een Handle? Deze vraag stel ik niet zozeer omdat ik wil gaan programmeren, maar omdat ik problemen heb met windows 98. explorer.exe "vreet" handles waardoor de PC vastloopt. Zie voor meer details mijn vraag in de "Windows OS", "Memory Leak in Windows 98 SE (door verkenner)". Bedankt voor de moeite, [/quote:236c9e2ccf] Nog iets simpeler. Vergelijk een handle met een huisnummer. Als je het huisnummer weet, dan weet je waar je moet zijn en wat voor type object het is. Deze objecten worden door windows bijgehouden. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen