GUID maken en optimalisaties
Omdat een CLSID, zoals een interface-id (IID), een GUID is, heeft geen andere klasse, ongeacht wie deze schrijft, een dubbele CLSID. Server-implementeerfuncties verkrijgen over het algemeen CLSID's via de functie CoCreateGuid. Deze functie is gegarandeerd om unieke CLSID's te produceren, zodat server implementeerers over de hele wereld hun software onafhankelijk kunnen ontwikkelen en implementeren zonder bang te zijn voor onbedoelde conflicten met software die door anderen is geschreven.
Het gebruik van unieke SSID's voorkomt de mogelijkheid van naamconflicten tussen klassen, omdat CLSID's op geen enkele manier zijn verbonden met de namen die in de onderliggende implementatie worden gebruikt. Twee verschillende leveranciers kunnen bijvoorbeeld klassen schrijven met de naam 'StackClass', maar elk zou een unieke CLSID hebben en kan daarom niet worden verward.
COM moet vaak GUID's (IID's en CLSID's) toewijzen aan een willekeurige grote set andere waarden. Als ontwikkelaar van toepassingen kunt u dergelijke zoekopdrachten versnellen en zo de systeemprestaties verbeteren door de GUID's voor uw toepassing te genereren als een blok opeenvolgende waarden.
De meest efficiënte manier om een blok opeenvolgende GUID's te genereren, is het uitvoeren van het hulpprogramma uuidgen met behulp van de -n- en -x-switches, waarmee een blok UUID's wordt gegenereerd, elk van de eerste DWORD-waarde wordt verhoogd met één.
Als u bijvoorbeeld typt
uuidgen -n5 -x
het hulpprogramma uuidgen genereert een blok UUID's die vergelijkbaar zijn met de volgende:
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
Eén methode voor het genereren en bijhouden van GUID's voor een heel project begint met het genereren van een blok van een willekeurig groot aantal UUID's, bijvoorbeeld 500. Als u bijvoorbeeld typt
uuidgen--n500 -x > guids.txt
het hulpprogramma genereert 500 opeenvolgende UUID's en schrijft deze naar het opgegeven tekstbestand. U kunt dit bestand vervolgens controleren in de bronstructuur, zodat er één opslagplaats wordt opgegeven voor alle GUID's die in een project moeten worden gebruikt. Omdat gebruikers GUID's nodig hebben voor hun gedeelten van het project, kunnen ze het bestand uitchecken, hoeveel GUID's ze nodig hebben, ze markeren als gebruikt en een opmerking achterlaten over waar in de code of 'spec' ze ze gebruiken.
Naast het verbeteren van de systeemprestaties heeft het genereren van blokken van opeenvolgende GUID's op deze manier de volgende voordelen:
- Een centraal bestand met alle GUID's voor een toepassing maakt het eenvoudig om bij te houden welke GUID's voor wat en welke personen ze gebruiken.
- Een blok opeenvolgende GUID's die zijn gekoppeld aan een bepaalde toepassing helpt ontwikkelaars en testers bij het herkennen van interne GUID's tijdens foutopsporing en maakt het gemakkelijker om ze in het systeemregister te vinden omdat ze opeenvolgend worden opgeslagen.
Verwante onderwerpen