Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Подскажите как сгенерить GUID на VB6? Добавлено: 11.03.04 12:43  

Автор вопроса:  Born | ICQ: 178155071 

В принципе в теме все понятно.

Если можно ответ кодом.

За ранее спасибо.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 11.03.04 12:53

Private Type GUID

PartOne As Long

PartTwo As Integer

PartThree As Integer

PartFour(7) As Byte

End Type

Private Declare Function CoCreateGuid Lib "OLE32.DLL" _

(ptrGuid As GUID) As Long

Public Function GUID() As String

Dim lRetVal As Long

Dim udtGuid As GUID

Dim sPartOne As String

Dim sPartTwo As String

Dim sPartThree As String

Dim sPartFour As String

Dim iDataLen As Integer

Dim iStrLen As Integer

Dim iCtr As Integer

Dim sAns As String

On Error GoTo errorhandler

sAns = ""

lRetVal = CoCreateGuid(udtGuid)

If lRetVal = 0 Then

'First 8 chars

sPartOne = Hex$(udtGuid.PartOne)

iStrLen = Len(sPartOne)

iDataLen = Len(udtGuid.PartOne)

sPartOne = String((iDataLen * 2) - iStrLen, "0") _

& Trim$(sPartOne)

'Next 4 Chars

sPartTwo = Hex$(udtGuid.PartTwo)

iStrLen = Len(sPartTwo)

iDataLen = Len(udtGuid.PartTwo)

sPartTwo = String((iDataLen * 2) - iStrLen, "0") _

& Trim$(sPartTwo)

'Next 4 Chars

sPartThree = Hex$(udtGuid.PartThree)

iStrLen = Len(sPartThree)

iDataLen = Len(udtGuid.PartThree)

sPartThree = String((iDataLen * 2) - iStrLen, "0") _

& Trim$(sPartThree) 'Next 2 bytes (4 hex digits)

'Final 16 chars

For iCtr = 0 To 7

sPartFour = sPartFour & _

Format$(Hex$(udtGuid.PartFour(iCtr)), "00")

Next

'To create GUID with "-", change line below to:

'sAns = sPartOne & "-" & sPartTwo & "-" & sPartThree _

'& "-" & sPartFour

sAns = sPartOne & sPartTwo & sPartThree & sPartFour

End If

GUID = sAns

Exit Function

errorhandler:

'return a blank string if there's an error

Exit Function

End Function

Ответить

Номер ответа: 2
Автор ответа:
 Born



ICQ: 178155071 

Вопросов: 21
Ответов: 52
 Профиль | | #2 Добавлено: 12.03.04 04:46

Я проще нашел.

Private Declare Function CoCreateGuid Lib _

"ole32.dll" (buffer As Byte) As Long

Private Declare Function StringFromGUID2 Lib _

"ole32.dll" (buffer As Byte, ByVal lpsz As Long, _

ByVal cbMax As Long) As Long

Private Function getGUID() As String

Dim buffer(0 To 15) As Byte

Dim s As String

Dim ret As Long

s = String$(128, 0)

' получает численный код

ret = CoCreateGuid(buffer(0))

' преобразуем его в текст,

' используя недокументированную функцию StrPtr

ret = StringFromGUID2(buffer(0), StrPtr(s), 128)

getGUID = Left$(s, ret - 1) ' отсекаем "хвост"

End Function

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам