Sdílet prostřednictvím


Vytváření a optimalizace GUID

Vzhledem k tomu, že CLSID, jako je identifikátor rozhraní (IID), je IDENTIFIKÁTOR GUID, žádná jiná třída, bez ohledu na to, kdo ho zapisuje, má duplicitní CLSID. Implementátoři serveru obecně získávají identifikátory CLSI prostřednictvím funkce CoCreateGuid. Tato funkce zaručuje vytváření jedinečných identifikátorů CLSID, takže implementátoři serverů po celém světě mohou nezávisle vyvíjet a nasazovat svůj software bez obav z náhodného kolize se softwarem napsaným ostatními.

Použití jedinečných identifikátorů CLSID zabraňuje kolizi názvů mezi třídami, protože identifikátory CLSI nejsou nijak propojené s názvy použitými v podkladové implementaci. Například dva různí dodavatelé mohou psát třídy s názvem StackClass, ale každý z nich by měl jedinečný CLSID, a proto nelze zaměnit.

Com často musí mapovat identifikátory GUID (IIDs a CLSID) na některé libovolně velké sady dalších hodnot. Jako vývojář aplikací můžete pomoct urychlit taková hledání a zvýšit tak výkon systému generováním identifikátorů GUID pro vaši aplikaci jako bloku po sobě jdoucích hodnot.

Nejúčinnější způsob, jak vygenerovat blok po sobě jdoucích identifikátorů GUID, je spuštění nástroje uuidgen pomocí přepínačů -n a -x, které vygeneruje blok identifikátorů UUID, z nichž každá z prvních hodnot DWORD se zvýší o jednu.

Pokud jste například chtěli psát

uuidgen -n5 -x

nástroj uuidgen by vygeneroval blok identifikátorů UUID podobných následujícímu:

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
 

Jedna metoda generování a sledování identifikátorů GUID pro celý projekt začíná generováním bloku některých libovolných velkých identifikátorů UUID, například 500. Pokud jste například chtěli psát

-n500 -x > guids.txt uuidgen

nástroj by vygeneroval 500 po sobě jdoucích identifikátorů UUID a zapisoval je do zadaného textového souboru. Pak můžete tento soubor zkontrolovat do zdrojového stromu a poskytnout jedno úložiště pro všechny identifikátory GUID, které se mají použít v projektu. Vzhledem k tomu, že uživatelé vyžadují identifikátory GUID pro jejich části projektu, můžou si soubor rezervovat, vzít ale mnoho identifikátorů GUID, které potřebují, označit je jako pořízené a nechat si poznámku o tom, kde v kódu nebo "specifikaci" je používají.

Kromě zlepšení výkonu systému má generování bloků po sobě jdoucích identifikátorů GUID tímto způsobem následující výhody:

  • Centrální soubor obsahující všechny identifikátory GUID pro aplikaci usnadňuje sledování, které identifikátory GUID jsou pro co a které osoby je používají.
  • Blok po sobě jdoucích identifikátorů GUID přidružených k určité aplikaci pomáhá vývojářům a testerům rozpoznat interní identifikátory GUID během ladění a usnadňuje jejich nalezení v systémovém registru, protože jsou uloženy postupně.

odpovědností serveru COM