VS中生成GUID的方法


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM