Was ist CLSID? Ist es eine GUID?

8

Ich möchte wissen, was genau CLSID-Datentyp ist, wie es in C ++ verwendet wird, und ich möchte es in Delphi verwenden.

  • Was ist CLSID?
Mahmoud Almontasser 19.10.2013, 21:42
quelle

2 Antworten

8

Eine CLSID ist eine GUID, die ein COM-Objekt identifiziert. Um ein registriertes COM-Objekt zu instanziieren, müssen Sie dessen CLSID kennen.

Normalerweise würden Sie in Delphi CoCreateInstance aufrufen. Sie rufen einfach die Funktion auf und übergeben eine CLSID. Die Deklaration von CoCreateInstance deklariert den Klassen-ID-Parameter als Typ TCLSID , was ein einfacher Alias ​​von TGUID ist. Also pass eines davon auf.

Hier sind die Deklarationen, wie sie aus der Delphi Quelle stammen:

%Vor%

Ein Beispiel für einen Aufruf von CoCreateInstance aus meiner Codebasis:

%Vor%

Sie werden wahrscheinlich eine andere Schnittstelle erstellen und müssen daher die entsprechende CLSID für diese Schnittstelle ersetzen.

Es gibt einen weiteren kleinen Trick, den es zu wissen lohnt. Wenn Sie einen Schnittstellentyp als Parameter vom Typ TGUID übergeben und dieser Schnittstellentyp eine GUID aufweist, ersetzt der Compiler die GUID für Sie. Also könnte der obige Code genauso geschrieben werden:

%Vor%     
David Heffernan 19.10.2013, 21:45
quelle
6
  

Was ist eine CLSID? Eine Klassen-ID (CLSID) ist eine 128-Bit-Zahl (große Zahl), die eine eindeutige ID für eine Softwareanwendung oder -anwendung darstellt   Komponente. In der Regel werden sie so angezeigt   "{AE7AB96B-FF5E-4dc-801E-14DF2C4CD681}".

     

Sie können sich eine CLSID als "Sozialversicherungsnummer" für ein Stück vorstellen   Software oder eine Softwarekomponente.

     

Wofür werden sie verwendet? CLSIDs werden von Windows verwendet, um Softwarekomponenten zu identifizieren, ohne ihren "Namen" kennen zu müssen. Sie können auch   von Softwareanwendungen verwendet werden, um einen Computer, eine Datei oder anderes zu identifizieren   Artikel.

     

Woher kommen sie? Microsoft stellt ein Dienstprogramm (Programm) namens GUIDGEN.EXE zur Verfügung, das diese Zahlen generiert. Sie werden von generiert   Verwenden Sie die aktuelle Uhrzeit, Netzwerkadapteradresse (falls vorhanden) und andere   Elemente in Ihrem Computer, so dass keine zwei Zahlen jemals gleich sein werden. [1]

und

  

COM-Klassen werden von CLSIDs benannt, bei denen es sich um UUIDs handelt, die von OSF / DCE definiert werden   RPC [2]

Zwei Zitate werden zitiert

    
deepmax 19.10.2013 21:46
quelle

Tags und Links