Chinaunix首页 | 论坛 | 博客
  • 博客访问: 449314
  • 博文数量: 62
  • 博客积分: 1312
  • 博客等级: 中尉
  • 技术积分: 1555
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:10
文章分类

全部博文(62)

文章存档

2014年(1)

2013年(5)

2012年(56)

分类: 服务器与存储

2012-07-01 22:17:18

概念:
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
  在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类及接口标识、数据库、系统目录等对象。
格式:
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个32位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
特点:
★GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。 ★世界上的任何两台计算机都不会生成重复的 GUID 值。 ★需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。 ★GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。
生成GUID的VB程序:

点击(此处)折叠或打开

  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 '生成GUID   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

生成GUID的C++程序:

点击(此处)折叠或打开

  1.   #include <objbase.h>   #include <stdio.h>   //--生成GUID   const char* newGUID()   {   static char buf[64] = {0};   GUID guid;   if (S_OK == ::CoCreateGuid(&guid))   {   _snprintf(buf, sizeof(buf)   , "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}"   , guid.Data1   , guid.Data2   , guid.Data3   , guid.Data4[0], guid.Data4[1]   , guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5]   , guid.Data4[6], guid.Data4[7]   );   }   return (const char*)buf;   }   int main(int argc, char* argv[])   {   //--COM   CoInitialize(NULL);   printf(newGUID());   printf("\n");   //--COM   CoUninitialize();   return 0;   }

生成GUID的C#程序:

点击(此处)折叠或打开

  1.   using System;   namespace GUID测试   {   class Program   {   static void Main(string[] args)   {   Console.WriteLine(System.Guid.NewGuid());   Console.ReadKey();   }   }

文章来自:百度知道
阅读(1936) | 评论(0) | 转发(0) |
0

上一篇:软件设计模式

下一篇:SWOT分析

给主人留下些什么吧!~~