GUID: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Filbot (discussione | contributi)
m robot Aggiungo: ja:GUID
Nessun oggetto della modifica
Riga 6:
Il GUID viene utilizzato per identificare in maniera univoca un determinato [[componente software]] COM; in questo modo due versioni (potenzialmente incompatibili) di uno stesso componente, anche con lo stesso nome, possono essere distinte tramite i loro codici GUID. Sebbene il GUID non garantisca un'effettiva unicità, il numero possibile di combinazioni (2<sup>128</sup>) è talmente elevato da scongiurare una coincidenza tra due codici.
 
Oltre ai componenti, sono marcati tramite GUID anche i documenti [[Microsoft_Office|Office]] e i [[file]] in formato [[Advanced Streaming Format]].
La maggior parte dei GUID utilizzati da diverse applicazioni sono contenute nel [[registro di sistema]] di [[Windows]].
 
===Struttura===
Nella pratica un GUID è un numero di 128 [[bit]] (16 [[byte]]) in formato [[esadecimale]] quale può essere:
 
3F 25 04 E0 4F 89 11 D3 9A 0C 03 05 E8 2C 33 01
 
 
I GUID vengono scritti tra parentesi graffe e divisi in tre blocchi di 4, 3 e 6 byte. Nell'esempio precedente si avrebbe:
 
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}
 
La notazione è quindi una sequenza formata dai seguenti gruppi di caratteri, divisi da un trattino (-).
# '''Gruppo 1''' (''8 caratteri'')
# '''Gruppo 2''' (''4 caratteri'')
# '''Gruppo 3''' (''4 caratteri'')
# Due elementi iniziali del '''gruppo 4''' (''4 caratteri'')
# Sei elementi rimanenti del '''gruppo 4''' (''12 caratteri'')
 
 
Nella definizione di una struttura atta a contenere un GUID, in un qualunque [[linguaggio di programmazione]], la struttura più utilizzata è la seguente.
GUID STRUCT
Data1 dd
Data2 dw
Data3 dw
Data4 db 8
GUID ENDS
 
In [[C (linguaggio di programmazione)|C]], la definizione contenuta nella libreria guiddef.h è questa:
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
 
Nel [[framework .NET]], è presente una classe apposita per la creazione di GUID, System.Guid.
 
 
===Algoritmo===
Riga 31 ⟶ 59:
I GUID utilizzati nei COM possono essere di diverso tipo, a seconda della loro funzione:
*IID - identificatori di interfaccia
*ClsID - identificatori di classe (contenuti in HKEY_CLASSES_ROOT\CLSID)
*LibID - identificatori di libreria
*CatID - identificatori di categoria (la presenza di un CATID in una classe identifica tale classe come appartenente ad una certa categoria)
Riga 48 ⟶ 76:
==GUID in [[XML]]==
Esistono anche dei GUID all'interno di alcune versioni di [[RSS]], marcati appunto dal tag <code>guid</code>, tuttavia non hanno niente a che fare con i GUID dei COM Microsoft. All'interno di RSS, infatti, i GUID possono essere un qualsiasi numero, una qualsiasi stringa o un [[URL]], valida o meno. Tipicamente si usa utilizzare come GUID l'URL univoco del post.
 
==Collegamenti esterni==
* [http://www.itu.int/ITU-T/studygroups/com17/oid.html Standard Internazionale "Generazione registrazione di Universally Unique Identifiers (UUIDs) e il loro uso come ASN.1 Object Identifier components"] (ITU-T Rec. X.667 | ISO/IEC 9834-8, tecnicamente compatibile con IETF RFC 4122)
* [http://www.famkruithof.net/uuid/uuidgen Generatore di UUID/GUID online]
* [http://www.firefoxextensions.com/guid-generator Estensione per Firefox per la generazione di GUID]
* [http://www.opengroup.org/onlinepubs/9629399/apdxa.htm Sintassi e semantica della variante DCE degli UUID]
*[http://johannburkard.de/software/uuid/ UUID &#8211; Generazione UUID (o GUID) in Java]
 
 
{{Informatica}}