GUID
読み方:ジーユーアイディー,グーイド
別名:グローバル一意識別子
GUIDとは、128ビットの整数値からなる、データを一意に識別するために用いられる識別子のことである。
GUIDは、時刻やMACアドレスなどを含むデータとして生成され、重複があっては困る状況で利用される。Windowsではインターフェース識別子やクラス識別子などに利用されている。
GUIDは、絶対的に一意であることが保証されてるわけではないが、実用上はほぼ、世界中に唯一とみなして扱って困難がないといわれている。128ビットの値だと可読性に劣ることもあり、レジストリに記録する際には文字列で表現されている。
なお、GUIDは主にMicrosoftが利用している仕様で、同様の識別子が一般的にはUUID(Universally Unique Identifer)として扱われている。UUIDはRFC 4122で規定されている。
Guid コンストラクタ (Int32, Int16, Int16, Byte[])
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Guid(1,2,3,new byte[]{0,1,2,3,4,5,6,7}) と指定すると、"00000001-0002-0003-0001-020304050607" に相当する Guid が作成されます。
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Guid コンストラクタ (Byte[])
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Guid コンストラクタ (String)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
- g
次のいずれかの形式の GUID を保持する String ('d' は大文字と小文字を区別しない 16 進数の文字を表す)。
dddddddddddddddddddddddddddddddd
または
間をハイフン (-) で区切った 8 桁、4 桁、4 桁、4 桁、12 桁のグループ。左右が対応している中かっこや丸かっこで GUID 全体を囲むこともできます。
dddddddd-dddd-dddd-dddd-dddddddddddd
または
{dddddddd-dddd-dddd-dddd-dddddddddddd}
または
(dddddddd-dddd-dddd-dddd-dddddddddddd)
または
8 桁、4 桁、4 桁のグループと、2 桁のグループ 8 個で構成されるサブセット。各グループは "0x" または "0X" で始まり、コンマで区切ります。GUID 全体およびサブセットは、左右が対応している中かっこで囲みます。
{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}
中かっこ、コンマ、プリフィックスの "0x" はすべて必須です。埋め込まれている空白はすべて無視されます。グループの先頭にある 0 はすべて無視されます。
各グループの桁数は、そのグループに指定できる最大の有効桁数です。1 から、例で示した各グループの桁の数までを指定できます。指定した数字は、そのグループの下位の桁と見なされます。
g パラメータの 16 進数のアルファベット文字は、大文字でも小文字でもかまいません。
"ca761232ed4211cebacd00aa0057b223"
"CA761232-ED42-11CE-BACD-00AA0057B223"
"{CA761232-ED42-11CE-BACD-00AA0057B223}"
"(CA761232-ED42-11CE-BACD-00AA0057B223)"
"{0xCA761232, 0xED42, 0x11CE, {0xBA, 0xCD, 0x00, 0xAA, 0x00, 0x57, 0xB2, 0x23}}"
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Guid コンストラクタ (UInt32, UInt16, UInt16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<CLSCompliantAttribute(False)> _ Public Sub New ( _ a As UInteger, _ b As UShort, _ c As UShort, _ d As Byte, _ e As Byte, _ f As Byte, _ g As Byte, _ h As Byte, _ i As Byte, _ j As Byte, _ k As Byte _ )
Dim a As UInteger Dim b As UShort Dim c As UShort Dim d As Byte Dim e As Byte Dim f As Byte Dim g As Byte Dim h As Byte Dim i As Byte Dim j As Byte Dim k As Byte Dim instance As New Guid(a, b, c, d, e, f, g, h, i, j, k)
[CLSCompliantAttribute(false)] public Guid ( uint a, ushort b, ushort c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k )
[CLSCompliantAttribute(false)] public: Guid ( unsigned int a, unsigned short b, unsigned short c, unsigned char d, unsigned char e, unsigned char f, unsigned char g, unsigned char h, unsigned char i, unsigned char j, unsigned char k )
/** @attribute CLSCompliantAttribute(false) */ public Guid ( UInt32 a, UInt16 b, UInt16 c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k )
CLSCompliantAttribute(false) public function Guid ( a : uint, b : ushort, c : ushort, d : byte, e : byte, f : byte, g : byte, h : byte, i : byte, j : byte, k : byte )
使用例
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Guid コンストラクタ (Int32, Int16, Int16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Public Sub New ( _ a As Integer, _ b As Short, _ c As Short, _ d As Byte, _ e As Byte, _ f As Byte, _ g As Byte, _ h As Byte, _ i As Byte, _ j As Byte, _ k As Byte _ )
Dim a As Integer Dim b As Short Dim c As Short Dim d As Byte Dim e As Byte Dim f As Byte Dim g As Byte Dim h As Byte Dim i As Byte Dim j As Byte Dim k As Byte Dim instance As New Guid(a, b, c, d, e, f, g, h, i, j, k)
public Guid ( int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k )
public: Guid ( int a, short b, short c, unsigned char d, unsigned char e, unsigned char f, unsigned char g, unsigned char h, unsigned char i, unsigned char j, unsigned char k )
public Guid ( int a, short b, short c, byte d, byte e, byte f, byte g, byte h, byte i, byte j, byte k )
public function Guid ( a : int, b : short, c : short, d : byte, e : byte, f : byte, g : byte, h : byte, i : byte, j : byte, k : byte )
使用例
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Guid コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
Guid (Byte[]) | 指定したバイト配列を使用して、Guid クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Guid (String) | 指定した文字列で表される値を使用して、Guid クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Guid (Int32, Int16, Int16, Byte[]) | 指定した整数とバイト配列を使用して、Guid クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Guid (Int32, Int16, Int16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte) | 指定した整数およびバイトを使用して、Guid の新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Guid (UInt32, UInt16, UInt16, Byte, Byte, Byte, Byte, Byte, Byte, Byte, Byte) | 指定した符号なし整数およびバイトを使用して、Guid クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Guid フィールド
Guid メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
CompareTo | オーバーロードされます。 指定したオブジェクトまたは Guid とこのインスタンスを比較し、これらの相対値を示す値を返します。 | |
Equals | オーバーロードされます。 Guid の 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。 | |
GetHashCode | オーバーライドされます。 このインスタンスのハッシュ コードを返します。 | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
NewGuid | Guid クラスの新しいインスタンスを初期化します。 | |
op_Equality | 指定した 2 つの Guid オブジェクトの値が等しいかどうかを示す値を返します。 | |
op_Inequality | 指定した 2 つの Guid オブジェクトの値が異なっているかどうかを示す値を返します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToByteArray | このインスタンスの値を格納する 16 要素のバイト配列を返します。 | |
ToString | オーバーロードされます。 オーバーライドされます。 Guid クラスのこのインスタンスの値を String 形式で返します。 |
Guid メンバ
グローバル一意識別子 (GUID) を表します。
パブリック コンストラクタ
パブリック フィールド
パブリック メソッド
名前 | 説明 | |
---|---|---|
CompareTo | オーバーロードされます。 指定したオブジェクトまたは Guid とこのインスタンスを比較し、これらの相対値を示す値を返します。 | |
Equals | オーバーロードされます。 Guid の 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。 | |
GetHashCode | オーバーライドされます。 このインスタンスのハッシュ コードを返します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
NewGuid | Guid クラスの新しいインスタンスを初期化します。 | |
op_Equality | 指定した 2 つの Guid オブジェクトの値が等しいかどうかを示す値を返します。 | |
op_Inequality | 指定した 2 つの Guid オブジェクトの値が異なっているかどうかを示す値を返します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToByteArray | このインスタンスの値を格納する 16 要素のバイト配列を返します。 | |
ToString | オーバーロードされます。 オーバーライドされます。 Guid クラスのこのインスタンスの値を String 形式で返します。 |
Guid 構造体
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Guid Implements IFormattable, IComparable, IComparable(Of Guid), _ IEquatable(Of Guid)
[SerializableAttribute] [ComVisibleAttribute(true)] public struct Guid : IFormattable, IComparable, IComparable<Guid>, IEquatable<Guid>
[SerializableAttribute] [ComVisibleAttribute(true)] public value class Guid : IFormattable, IComparable, IComparable<Guid>, IEquatable<Guid>
使用例
ユーザー定義のクラスやインターフェイスの属性として Guid オブジェクトの関連付けと読み取りを行う方法については、次のコード例を参照してください。
Imports System Imports System.Runtime.InteropServices ' Guid for the interface IMyInterface. <Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")> _ Interface IMyInterface Sub MyMethod() End Interface ' Guid for the coclass MyTestClass. <Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")> _ Public Class MyTestClass Implements IMyInterface ' Run regasm on this assembly to create .reg and .tlb files. ' Reg file can be used to register this coclass in the registry. ' Tlb file will be used to do interop. Public Sub MyMethod() Implements IMyInterface.MyMethod End Sub Public Shared Sub Main() ' Example addresses the following in System.Runtime.InterOpServices.GuidAttribute. ' How to specify the attribute on interface/coclass. ' Retrieve the GuidAttribute from an interface/coclass. ' Value property on GuidAttribute class. ' Example addresses the following in System.Guid. ' Constructor Guid(string). ' Constructor Guid(ByteArray). ' Equals. ' Operator ==. ' CompareTo. Dim IMyInterfaceAttribute As Attribute = Attribute.GetCustomAttribute(GetType(IMyInterface), GetType(GuidAttribute)) ' The Value property of GuidAttribute returns a string. System.Console.WriteLine("IMyInterface Attribute: " + CType(IMyInterfaceAttribute, GuidAttribute).Value) ' Using the string to create a guid. Dim myGuid1 As New Guid(CType(IMyInterfaceAttribute, GuidAttribute).Value) ' Using a byte array to create a guid. Dim myGuid2 As New Guid(myGuid1.ToByteArray()) ' Equals is overridden and so value comparison is done though references are different. If myGuid1.Equals(myGuid2) Then System.Console.WriteLine("myGuid1 equals myGuid2") Else System.Console.WriteLine("myGuid1 not equals myGuid2") End If ' Equality operator can also be used to determine if two guids have same value. If myGuid1.ToString() = myGuid2.ToString() Then System.Console.WriteLine("myGuid1 == myGuid2") Else System.Console.WriteLine("myGuid1 != myGuid2") End If ' CompareTo returns 0 if the guids have same value. If myGuid1.CompareTo(myGuid2) = 0 Then System.Console.WriteLine("myGuid1 compares to myGuid2") Else System.Console.WriteLine("myGuid1 does not compare to myGuid2") End If System.Console.ReadLine() 'Output: 'IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 'myGuid1 equals myGuid2 'myGuid1 == myGuid2 'myGuid1 compares to myGuid2 End Sub End Class
using System; using System.Runtime.InteropServices; // Guid for the interface IMyInterface. [Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")] interface IMyInterface { void MyMethod(); } // Guid for the coclass MyTestClass. [Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")] public class MyTestClass : IMyInterface { // Run regasm on this assembly to create .reg and .tlb files. // Reg file can be used to register this coclass in the registry. // Tlb file will be used to do interop. public void MyMethod() {} public static void Main( string []args ) { // Example addresses the following in System.Runtime.InterOpServices.GuidAttribute. // How to specify the attribute on interface/coclass. // Retrieve the GuidAttribute from an interface/coclass. // Value property on GuidAttribute class. // Example addresses the following in System.Guid. // Constructor Guid(string). // Constructor Guid(ByteArray). // Equals. // Operator ==. // CompareTo. Attribute IMyInterfaceAttribute = Attribute.GetCustomAttribute( typeof( IMyInterface ), typeof( GuidAttribute ) ); // The Value property of GuidAttribute returns a string. System.Console.WriteLine( "IMyInterface Attribute: " + ((GuidAttribute)IMyInterfaceAttribute).Value ); // Using the string to create a guid. Guid myGuid1 = new Guid( ((GuidAttribute)IMyInterfaceAttribute).Value ); // Using a byte array to create a guid. Guid myGuid2 = new Guid ( myGuid1.ToByteArray() ); // Equals is overridden and so value comparison is done though references are different. if ( myGuid1.Equals( myGuid2 ) ) System.Console.WriteLine( "myGuid1 equals myGuid2" ); else System.Console.WriteLine( "myGuid1 not equals myGuid2" ); // Equality operator can also be used to determine if two guids have same value. if ( myGuid1 == myGuid2 ) System.Console.WriteLine( "myGuid1 == myGuid2" ); else System.Console.WriteLine( "myGuid1 != myGuid2" ); // CompareTo returns 0 if the guids have same value. if ( myGuid1.CompareTo( myGuid2 ) == 0 ) System.Console.WriteLine( "myGuid1 compares to myGuid2" ); else System.Console.WriteLine( "myGuid1 does not compare to myGuid2" ); System.Console.ReadLine(); //Output. //IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 //myGuid1 equals myGuid2 //myGuid1 == myGuid2 //myGuid1 compares to myGuid2 } }
using namespace System; using namespace System::Runtime::InteropServices; // Guid for the interface IMyInterface. [Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4")] public interface class IMyInterface { public: void MyMethod(); }; // Guid for the coclass MyTestClass. [Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8")] public ref class MyTestClass: public IMyInterface { public: // Run regasm on this assembly to create .reg and .tlb files. // Reg file can be used to register this coclass in the registry. // Tlb file will be used to do interop. virtual void MyMethod(){} }; int main() { // Example addresses the following in System.Runtime.InterOpServices.GuidAttribute. // How to specify the attribute on interface/coclass. // Retrieve the GuidAttribute from an interface/coclass. // Value property on GuidAttribute class. // Example addresses the following in System.Guid. // Constructor Guid(string). // Constructor Guid(ByteArray). // Equals. // Operator ==. // CompareTo. Attribute^ IMyInterfaceAttribute = Attribute::GetCustomAttribute( IMyInterface::typeid, GuidAttribute::typeid ); // The Value property of GuidAttribute returns a string. System::Console::WriteLine( String::Concat( "IMyInterface Attribute: ", (dynamic_cast<GuidAttribute^>(IMyInterfaceAttribute))->Value ) ); // Using the string to create a guid. Guid myGuid1 = Guid(dynamic_cast<GuidAttribute^>(IMyInterfaceAttribute)->Value); // Using a byte array to create a guid. Guid myGuid2 = Guid(myGuid1.ToByteArray()); // Equals is overridden and so value comparison is done though references are different. if ( myGuid1.Equals( myGuid2 ) ) System::Console::WriteLine( "myGuid1 equals myGuid2" ); else System::Console::WriteLine( "myGuid1 not equals myGuid2" ); // Equality operator can also be used to determine if two guids have same value. if ( myGuid1 == myGuid2 ) System::Console::WriteLine( "myGuid1 == myGuid2" ); else System::Console::WriteLine( "myGuid1 != myGuid2" ); // CompareTo returns 0 if the guids have same value. if ( myGuid1.CompareTo( myGuid2 ) == 0 ) System::Console::WriteLine( "myGuid1 compares to myGuid2" ); else System::Console::WriteLine( "myGuid1 does not compare to myGuid2" ); //Output. //IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 //myGuid1 equals myGuid2 //myGuid1 == myGuid2 //myGuid1 compares to myGuid2 }
import System.*; import System.Runtime.InteropServices.*; // Guid for the interface IMyInterface. /** @attribute Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4") */ interface IMyInterface { void MyMethod(); } //IMyInterface // Guid for the coclass MyTestClass. /** @attribute Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8") */ public class MyTestClass implements IMyInterface { // Run regasm on this assembly to create .reg and .tlb files. // Reg file can be used to register this coclass in the registry. // Tlb file will be used to do interop. public void MyMethod() { } //MyMethod public static void main(String[] args) { // Example addresses the following in System.Runtime. // InterOpServices.GuidAttribute. // How to specify the attribute on interface/coclass. // Retrieve the GuidAttribute from an interface/coclass. // Value property on GuidAttribute class. // Example addresses the following in System.Guid. // Constructor Guid(string). // Constructor Guid(ByteArray). // Equals. // Operator ==. // CompareTo. Attribute iMyInterfaceAttribute = Attribute.GetCustomAttribute(IMyInterface.class.ToType(), GuidAttribute.class.ToType()); // The Value property of GuidAttribute returns a string. System.Console.WriteLine("IMyInterface Attribute: " + ((GuidAttribute)(iMyInterfaceAttribute)).get_Value()); // Using the string to create a guid. Guid myGuid1 = new Guid(((GuidAttribute)(iMyInterfaceAttribute)).get_Value()); // Using a byte array to create a guid. Guid myGuid2 = new Guid(myGuid1.ToByteArray()); // Equals is overridden and so value comparison is done though // references are different. if (myGuid1.Equals(myGuid2)) { System.Console.WriteLine("myGuid1 equals myGuid2"); } else { System.Console.WriteLine("myGuid1 not equals myGuid2"); } // Equality operator can also be used to determine if two // guids have same value. if (myGuid1 == myGuid2) { System.Console.WriteLine("myGuid1 == myGuid2"); } else { System.Console.WriteLine("myGuid1 != myGuid2"); } // CompareTo returns 0 if the guids have same value. if (myGuid1.CompareTo(myGuid2) == 0) { System.Console.WriteLine("myGuid1 compares to myGuid2"); } else { System.Console.WriteLine("myGuid1 does not compare to myGuid2"); } System.Console.ReadLine(); } //main } //MyTestClass //Output. //IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 //myGuid1 equals myGuid2 //myGuid1 == myGuid2 //myGuid1 compares to myGuid2
import System; import System.Runtime.InteropServices; // Guid for the interface IMyInterface. Guid("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4") interface IMyInterface { function MyMethod(); } // Guid for the coclass MyTestClass. public Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8") class MyTestClass implements IMyInterface { // Run regasm on this assembly to create .reg and .tlb files. // Reg file can be used to register this coclass in the registry. // Tlb file will be used to do interop. public function MyMethod() {} public static function Main() { // Example addresses the following in System.Runtime.InterOpServices.GuidAttribute. // How to specify the attribute on interface/coclass. // Retrieve the GuidAttribute from an interface/coclass. // Value property on GuidAttribute class. // Example addresses the following in System.Guid. // Constructor Guid(string). // Constructor Guid(ByteArray). // Equals. // Operator ==. // CompareTo. var IMyInterfaceAttribute : Attribute = Attribute.GetCustomAttribute(Type.GetType("IMyInterface"), GuidAttribute); // The Value property of GuidAttribute returns a string. System.Console.WriteLine( "IMyInterface Attribute: " + (GuidAttribute(IMyInterfaceAttribute)).Value ); // Using the string to create a guid. var myGuid1 : Guid = new Guid( (GuidAttribute(IMyInterfaceAttribute)).Value ); // Using a byte array to create a guid. var myGuid2 : Guid = new Guid ( myGuid1.ToByteArray() ); // Equals is overridden and so value comparison is done though references are different. if ( myGuid1.Equals( myGuid2 ) ) System.Console.WriteLine( "myGuid1 equals myGuid2" ); else System.Console.WriteLine( "myGuid1 not equals myGuid2" ); // Equality operator can also be used to determine if two guids have same value. if ( myGuid1 == myGuid2 ) System.Console.WriteLine( "myGuid1 == myGuid2" ); else System.Console.WriteLine( "myGuid1 != myGuid2" ); // CompareTo returns 0 if the guids have same value. if ( myGuid1.CompareTo( myGuid2 ) == 0 ) System.Console.WriteLine( "myGuid1 compares to myGuid2" ); else System.Console.WriteLine( "myGuid1 does not compare to myGuid2" ); System.Console.ReadLine(); //Output. //IMyInterface Attribute: F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 //myGuid1 equals myGuid2 //myGuid1 == myGuid2 //myGuid1 compares to myGuid2 } } MyTestClass.Main();
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
GUID
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)
ナビゲーションに移動 検索に移動GUID (英: Globally Unique Identifier) またはグローバル一意識別子(ぐろーばるいちいしきべつし)は、UUIDの実装のひとつ、あるいは(事実上)UUIDの別名である。
UUIDのマイクロソフトによる実装を指すと解されることもあるが、オラクルのデータベースやNetIQのeDirectory(ディレクトリ・サービス)、GUIDパーティションテーブルなど、ほぼUUIDを指して、GUIDの語が使われることもある。
GUIDを生成するツールとして、Microsoft Windows SDKに付属する GuidGen [1]などがある。GuidGenはMicrosoft Visual Studioのメニューから呼び出すこともできる。Windows APIにはCoCreateGuid()
関数[2]およびUuidCreate()
関数[3]が用意されている。.NET FrameworkにはSystem.Guid.NewGuid()
メソッドが用意されている[4]。
構造
GUID は16バイト (128ビット) の2進数値で、以下のような構造体で表現される。
GUID STRUCT Data1 dd Data2 dw Data3 dw Data4 db 8 GUID ENDS
<guiddef.h> におけるGUID
構造体の定義は以下のとおり[5]。
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
Microsoft Windowsでは16ビット/32ビット/64ビットいずれのターゲットプラットフォーム(CPUアーキテクチャ)においても、short
型は常に16ビットであり、long
型は常に32ビットである。
テキスト表記
GUIDの表記には一般に以下のような16進表記が使われる。
3F2504E0-4F89-11D3-9A0C-0305E82C3301
このテキスト表記は以下のような32桁の構造を持つ。
- Data1 (8桁)
- ハイフン
- Data2 (4桁)
- ハイフン
- Data3 (4桁)
- ハイフン
- Data4 の最初の2アイテム (4桁)
- ハイフン
- Data4 の残りの6アイテム (12桁)
波括弧 (ブレース) で囲んで表記することも多い。
{3F2504E0-4F89-11D3-9A0C-0305E82C3301}
使用例
脚注
外部リンク
- GUIDのページへのリンク