Ich möchte wissen, was genau CLSID-Datentyp ist, wie es in C ++ verwendet wird, und ich möchte es in Delphi verwenden.
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:
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:
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