创建  GUID 
============================================================== Private  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 
        lResult  =  CoCreateGuid(udtGUID) 
        If  lResult  Then 
                sGUID  =  "" 
        Else 
                sGUID  =  String$(38,  0) 
                StringFromGUID2  udtGUID,  StrPtr(sGUID),  39 
        End  If 
        CreateGUID  =  sGUID  
End  Function       ==============================================================  

解决方案 »

  1.   

    Option Explicit 
    Private Type GUID 
       Data1 As Long 
       Data2 As Long 
       Data3 As Long 
       Data4(8) As Byte 
    End Type 
    Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long 
    Private Declare Function StringFromGUID2 Lib "ole32.dll"(rguid As Any,ByVal lpstrClsId As Long,ByVal cbMax As Long) As Long Private Function GUIDGen() As String 
     Dim uGUID As GUID 
     Dim sGUID As String 
     Dim bGUID() As Byte 
     Dim lLen As Long 
     Dim RetVal As Long 
     lLen = 40 
     bGUID = String(lLen, 0) 
     CoCreateGuid uGUID '把结构转换为一个可显示的字符串 
     RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen) 
     sGUID = bGUID 
     If (Asc(Mid$(sGUID, RetVal, 1)) = 0) Then RetVal = RetVal - 1 
     GUIDGen = Left$(sGUID, RetVal) 
    End Function Private Sub cmdGUID_Click() 
     txtGUID.Text = GUIDGen 
    End Sub