Autor Beitrag
Holgerwa
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 325

WIN XP Pro, Vista Business
Delphi 7 Pro, BDS 2006 Pro
BeitragVerfasst: Di 22.02.05 11:50 
Hallo,

ich habe gerade ein bischen über GUIDs gelesen, und diesen Beitrag gefunden:
www.delphi-forum.de/viewtopic.php?t=21399

Jetzt macht das ja alles auch ein bischen mehr Sinn, wenn die GUID von der einmaligen MAC Adresse abhängt.
Was ist denn nun aber eine sinnvolle Anwendung einer GUID?

In der Registry findet man ja tonnenweise Einträge in GUID Form.

Könnte ich also (mal rein theoretisch überlegt) in meinem Delphi eine GUID erzeugen, und diesen "String" nun in der Registry verwenden, um die Daten für meine Anwendung unter diesem Schlüssel abzulegen? Dann würde ich ja mit Sicherheit eine Kollision mit einer anderen Anwendung vermeiden, die zufälligerweise die gleichen Namen verwenden würden. (Was aber auch so sehr sicher geht, wenn man wie üblich die Daten sowohl unter Firmenname/Softwarename ablegt).

Ist das der Grund für die vielen GUID-mäßigen Schlüssel in der Registry?

Und: Macht so ein Vorgehen Sinn?

Viele Fragen, aber ich bin sicher, Ihr könnt mich schlauer machen! :wink:

Danke!
Holger
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Di 22.02.05 11:58 
Also ich weiß halt dass das Component Object Model (COM) damit arbeitet. Da schmeißen die Entwickler nur so mit GUIDs um sich ;) *gg* Nee, also in COM benutzt du sogenannte Interfaces und jedes Interface hat z.B. eine GUID und ist somit weltweit eindeutig identifizierbar. Recht genial die Sache :) Wenn du dann ein Programm schreibst, dass so ein Interface veröffentlicht und dann ein anderes Programm auf solch ein Interface zugreifen will (das is der Witz an COM - auch andere Programme können auf deinen Programmcode zugreifen), so kann es sich dank der GUID 100%ig sicher sein, dass es da auch gerade deinen Code anspricht und nicht einen Code von irgendeinem anderen Programm, dass zufällig gleich heißt oder so :)




MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Di 22.02.05 12:18 
Holgerwa hat folgendes geschrieben:
Könnte ich also (mal rein theoretisch überlegt) in meinem Delphi eine GUID erzeugen, und diesen "String" nun in der Registry verwenden, um die Daten für meine Anwendung unter diesem Schlüssel abzulegen? Dann würde ich ja mit Sicherheit eine Kollision mit einer anderen Anwendung vermeiden, die zufälligerweise die gleichen Namen verwenden würden. (Was aber auch so sehr sicher geht, wenn man wie üblich die Daten sowohl unter Firmenname/Softwarename ablegt).
Könnte man, macht man aber nicht. Solche Daten sollten in HKCU/Software/$Firma/$Programmname gespeichert werden. Und daß die gleiche Firma ein gleichnamiges Programm entwickelt mit unterschiedlicher Funktion, ist fraglich...

Holgerwa hat folgendes geschrieben:
Ist das der Grund für die vielen GUID-mäßigen Schlüssel in der Registry?
Nein. Wie MrSaint schon sagte, werden GUIDs vorwiegend für COM-Klassen benutzt. Die GUIDs in der Registry sind Verweise zu den COM-Klassen, die auf dem System registriert sind. Zugegriffen wird über die GUID, der COM-Dienst sucht sich seine DLLs anhand der passenden Einträge in der Registry zusammen und instanziert dann die Objekte. Die (meisten) GUIDs in der Registry sind also Schlüssel mit Informationen über die entsprechende Klasse, die der GUID zugehörig ist (das Ganze nennt sich dann nicht mehr GUID, sondern CLSID, Class ID, ist aber vollkommen identisch mit einer GUID).
Ansonsten benutzt man GUIDs immer da, wo man einen unbedingt eindeutigen Schlüssel braucht, z.B. kann man bei Semaphoren GUIDs benutzen, um sicherzustellen, daß ein Semaphor gleichen Namens never ever von einer andere Anwendung benutzt wird.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Al Borland
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 16



BeitragVerfasst: Di 22.02.05 12:46 
Der Name sagt schon alles : Globally Unique Identifier.
Weltweit eindeutiger Bezeichner also. Besteht aus 128 bit und enthält meist Zeit-, Hardware-, Benutzer- Informationen usw. So daß die Wahrscheinlichkeit, dass zwei Leute um 11:32 15 Sekunden 273 Millisekunden, in Deutschland, mit dem Namen Klaus Müller, mit 'nem P54 und 256 MB Ram...,eine GUID erzeugen gaaaanz stark gegen Null geht.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 22.02.05 12:49 
Al Borland hat folgendes geschrieben:
Der Name sagt schon alles : Globally Unique Identifier.
Weltweit eindeutiger Bezeichner also. Besteht aus 128 bit und enthält meist Zeit-, Hardware-, Benutzer- Informationen usw. So daß die Wahrscheinlichkeit, dass zwei Leute um 11:32 15 Sekunden 273 Millisekunden, in Deutschland, mit dem Namen Klaus Müller, mit 'nem P54 und 256 MB Ram...,eine GUID erzeugen gaaaanz stark gegen Null geht.

Kann da mal jemand die Wahlrscheinlichkeit ausrechnen? :gruebel: :mrgreen:
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Di 22.02.05 13:10 
theoretisch, ja.
aber die wahrscheinlichkeit das ich das jetzt seeeehhhrrr gering ist ziemlich gering

_________________
Patrick
im zweifelsfall immer das richtige tun!!!