码迷,mamicode.com
首页 > 其他好文 > 详细

VS中生成GUID的方法

时间:2015-07-11 16:36:15      阅读:368      评论:0      收藏:0      [点我收藏+]

标签:

 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"。

VS中生成GUID的方法

标签:

原文地址:http://www.cnblogs.com/5iedu/p/4638768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!