标签:
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。它使用网卡MAC、地址、纳秒级时间、芯片ID码和许多可能的数字,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。
GUID长什么样呢?
{C7B1AFCC-810E-46d0-8157-09FC488D4C71}
看起来挺古怪的吧。在 Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。
不用担心GUID的性能问题,因为它生成过程是采用MAC地址、机器时钟等计算的,没有并发问题,所以它一点都不比自增计数器的慢,有时候甚至更快。
讲了一大堆理论,在程序中怎么生成GUID呢?
非常简单,调用CoCreateGuid函数即可,它定义在objbase.h这个头文件中。
【核心代码】
1 #include <windows.h> 2 #include <stdio.h> 3 int main() 4 { 5 GUID guid; 6 ZeroMemory(&guid, sizeof(guid)); 7 TCHAR guid_string[1024]; 8 CoCreateGuid(&guid); 9 10 //格式化字符串 11 wsprintf(guid_string, TEXT("{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}"), 12 guid.Data1, 13 guid.Data2, 14 guid.Data3, 15 guid.Data4[0], 16 guid.Data4[1], 17 guid.Data4[2], 18 guid.Data4[3], 19 guid.Data4[4], 20 guid.Data4[5], 21 guid.Data4[6], 22 guid.Data4[7]); 23 24 //输出GUID字符串 25 wprintf(guid_string); 26 return 0; 27 }
//利用VS工具生成:方法是"VS→工具→创建GUID"。
标签:
原文地址:http://www.cnblogs.com/5iedu/p/4638768.html