GUIDy są używane w programowaniu Mozilli do identyfikacji rożnych rzeczy włączając w to interfejsy XPCOM (ten typ GUID nazywany jest IID), komponenty (CID) oraz dodatki jak rozszerzenia oraz motywy. Dodatki mogą (i powinny) być identyfikowane za pomocą ID typu <tt>[email protected]</tt> począwszy od Firefoksa 1.5.
Forma kanoniczna
Typową formą GUID jest <tt>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx</tt>, gdzie każdy <tt>x</tt> reprezentuje cyfrę szestnastkową. Istnieje wiele narzędzi do generacji GUID w formie kanonicznej.
Narzędzia online
- Generowanie GUID online
- Generator sieciowy UUID (GUID)
- UUID Generator for Mozilla Code (both IDL and C++.h forms)
- Ostatecznie, można uzyskać GUID od jednego z botów (tj. botbot, firebot) na kanale IRC #mozilla za pomocą <tt>/msg</tt> "uuid".
Windows
Użytkownicy Windows mogą użyć narzędzia Microsoftu GuidGen. (Jest ono również częścią MS Visual C++)
Linux
Użyj /usr/bin/uuidgen
. Można go znaleźć w paczce libuuid1
(Debian).
Perl
Narzędzie Mozilli jkeiser's zawiera generator UUID tworzący zarówno format C++ jak i styl IDL.
nsIUUIDGenerator
UUID może zostać wygenerowany za pomocą wolnego kodu Mozilli nsIUUIDGenerator
. Patrz odnośniki do strony.
Format COM/XPCOM
Podczas definiowania IID i CID za pomocą #define
w kodzie C++ Mozilli możesz używać poniższego formatu:
// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx #define NS_...ID \ { 0xXXXXXXXX, 0xXXXX, 0xXXXX, \ { 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX } }
Możesz wygenerować kod w powyższym formacie używając poniższych narzędzi.
Narzędzia online
guidgen
guidgen.exe
jest częścią Microsoft Visual Studio i może generować UUID w tym formacie.
bash
Możesz wpisać poniższy tekst do swojego pliku <tt>.bashrc</tt>:
uuidgen-c++() { local UUID=$(uuidgen) echo "// $UUID" echo "#define NS__IID \\" echo "{ 0x${UUID:0:8}, 0x${UUID:9:4}, 0x${UUID:14:4}, \\" echo -n " { 0x${UUID:19:2}, 0x${UUID:21:2}, 0x${UUID:24:2}, " echo -n "0x${UUID:26:2}, 0x${UUID:28:2}, 0x${UUID:30:2}, " echo "0x${UUID:32:2}, 0x${UUID:34:2} } }" }
Perl
#!/usr/bin/perl $uuid = `uuidgen`; chomp $uuid; print $uuid, "\n"; @parts = ($uuid =~ /^(.{8})-(.{4})-(.{4})-(..)(..)-(..)(..)(..)(..)(..)(..)$/); print "{ 0x$parts[0], 0x$parts[1], 0x$parts[2], \\", "\n", " { "; for (3 .. 9) { print "0x$parts[$_], "; } print "0x$parts[10] } }", "\n";