新建一个模块 Attribute VB_Name = "CreateGUID" Option ExplicitPrivate Declare Function CoCreateGuid Lib "OLE32.DLL" (pGUID As GUID) As Long Private Declare Function StringFromGUID2 Lib "OLE32.DLL" (pGUID As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long Private Type GUID Guid1 As Long Guid2 As Long Guid3 As Long Guid4(0 To 7) As Byte End Type Public Function CreateGUID() As String Dim udtGUID As GUID Dim sGUID As String Dim lResult As Long Const clGuidLength As Long = 38 lResult = CoCreateGuid(udtGUID) If lResult Then sGUID = "" Else sGUID = String$(clGuidLength, 0) StringFromGUID2 udtGUID, StrPtr(sGUID), clGuidLength + 1 End If CreateGUID = sGUID End Function是我在收藏的代码,嘻嘻~
Attribute VB_Name = "CreateGUID"
Option ExplicitPrivate Declare Function CoCreateGuid Lib "OLE32.DLL" (pGUID As GUID) As Long
Private Declare Function StringFromGUID2 Lib "OLE32.DLL" (pGUID As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long
Private Type GUID
Guid1 As Long
Guid2 As Long
Guid3 As Long
Guid4(0 To 7) As Byte
End Type
Public Function CreateGUID() As String
Dim udtGUID As GUID
Dim sGUID As String
Dim lResult As Long
Const clGuidLength As Long = 38
lResult = CoCreateGuid(udtGUID)
If lResult Then
sGUID = ""
Else
sGUID = String$(clGuidLength, 0)
StringFromGUID2 udtGUID, StrPtr(sGUID), clGuidLength + 1
End If
CreateGUID = sGUID
End Function是我在收藏的代码,嘻嘻~
说得有道理
但是有些文章说得是GUID是使用网卡物理地址,和时间通过一种算法生成的
你说得唯一算法,我好像有点印象,记不清了
那里有详细介绍GUID,UUID的文章?
MSDN里好像没有找到啊ucme(边城毛毛)
谢谢,你的代码
但是我想知道UUID,GUID产生的原理,最好是算法,呵呵
生成UUID,GUID得源码我都有