Freigeben über


GUID-Erstellung und -Optimierung

Da eine CLSID wie ein Schnittstellenbezeichner (IID) eine GUID ist, verfügt keine andere Klasse, unabhängig davon, wer sie schreibt, eine doppelte CLSID. Serverimplementierer erhalten CLSIDs in der Regel über die CoCreateGuid-Funktion . Diese Funktion erzeugt garantiert einzigartige CLSIDs, sodass Serverimplementierer auf der ganzen Welt ihre Software unabhängig entwickeln und bereitstellen können, ohne angst zu haben, versehentlich mit software zu kollidieren, die von anderen geschrieben wurde.

Die Verwendung eindeutiger CLSIDs vermeidet die Möglichkeit von Namenskonflikten zwischen Klassen, da CLSIDs in keiner Weise mit den In der zugrunde liegenden Implementierung verwendeten Namen verbunden sind. Beispielsweise können zwei verschiedene Anbieter Klassen namens "StackClass" schreiben, aber jede hätte eine eindeutige CLSID und kann daher nicht verwechselt werden.

COM muss häufig GUIDs (IIDs und CLSIDs) einem beliebig großen Satz anderer Werte zuordnen. Als Anwendungsentwickler können Sie dazu beitragen, solche Suchvorgänge zu beschleunigen und dadurch die Systemleistung zu verbessern, indem Sie die GUIDs für Ihre Anwendung als Block aufeinanderfolgender Werte generieren.

Die effizienteste Möglichkeit zum Generieren eines Blocks aufeinanderfolgender GUIDs besteht darin, das Hilfsprogramm uuidgen mithilfe der Switches -n und -x auszuführen, wodurch ein Block von UUIDs generiert wird, deren erster DWORD-Wert jeweils um eins erhöht wird.

Wenn Sie z. B. eingeben möchten

uuidgen -n5 -x

das Hilfsprogramm uuidgen würde einen Block von UUIDs ähnlich dem folgenden generieren:

12340001-4980-1920-6788-123456789012
12340002-4980-1920-6788-123456789012
12340003-4980-1920-6788-123456789012
12340004-4980-1920-6788-123456789012
12340005-4980-1920-6788-123456789012
 

Eine Methode zum Generieren und Nachverfolgen von GUIDs für ein gesamtes Projekt beginnt mit der Generierung eines Blocks mit einer beliebig großen Anzahl von UUIDs, z. B. 500. Wenn Sie z. B. eingeben möchten

uuidgen -n500 -x > guids.txt

das Hilfsprogramm generiert 500 aufeinanderfolgende UUIDs und schreibt sie in die angegebene Textdatei. Sie könnten diese Datei dann in Ihrer Quellstruktur überprüfen und ein einzelnes Repository für alle GUIDs bereitstellen, die in einem Projekt verwendet werden sollen. Da Benutzer GUIDs für ihre Teile des Projekts benötigen, können sie die Datei auschecken, so viele GUIDs sie benötigen, als angenommen markieren und eine Notiz darüber hinterlassen, wo sie im Code oder in der "Spezifikation" sie verwenden.

Neben der Verbesserung der Systemleistung hat das Generieren von Blöcken aufeinanderfolgender GUIDs auf diese Weise die folgenden Vorteile:

  • Mit einer zentralen Datei, die alle GUIDs für eine Anwendung enthält, können Sie leicht nachverfolgen, welche GUIDs für was und welche Personen sie verwenden.
  • Ein Block aufeinanderfolgender GUIDs, die einer bestimmten Anwendung zugeordnet sind, hilft Entwicklern und Testern, interne GUIDs während des Debuggens zu erkennen und erleichtert deren Suche in der Systemregistrierung, da sie sequenziell gespeichert werden.

COM-Serververantwortlichkeiten