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

时间: 2024-08-09 22:08:07

VS中生成GUID的方法的相关文章

在C#中生成GUID的方法

var guid = Guid.NewGuid();Debug.WriteLine(guid.ToString());   //1f3c6041-c68f-4ab3-ae19-f66f541e3209Debug.WriteLine(guid.ToString("N"));//1f3c6041c68f4ab3ae19f66f541e3209Debug.WriteLine(guid.ToString("D"));//1f3c6041-c68f-4ab3-ae19-f66

Oracle中生成uuid的方法

Oracle中生成uuid的方法 下载LOFTER客户端 在Oracle SQL 提供了一个生成uuid的函数sys_guid: http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions187.htm#i79194 http://en.wikipedia.org/wiki/Universally_unique_identifier SQL> select sys_guid() from dual ; SYS_

JavaScript生成GUID的方法

一.生成GUID的方法一 JScript 代码   复制 function guid() { function S4() { return (((1+Math.random())*0x10000)|0).toString(16).substring(1); } return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()); } 二.生成GUID的方法二 JSc

在asp.net 中生成PDF的方法

近期要用asp.net 2.0生成PDF,看了下书,查了下资料,发现可以有组件帮得上忙,可以下载itextsharp(https://sourceforge.net/projects/itextsharp)下载,然后在工程中引用该控件,举例子如下 1  datatable 的内容转换为PDF      首先,建立一个datatable转换为pdf的方法如下 using iTextSharp;using iTextSharp.text;using iTextSharp.text.pdf;using

在excel中生成GUID

=CONCATENATE(LOWER(DEC2HEX(RANDBETWEEN(0,4294967295),8)),"-",LOWER(DEC2HEX(RANDBETWEEN(0,65535),4)),"-",LOWER(DEC2HEX(RANDBETWEEN(16384,20479),4)),"-",LOWER(DEC2HEX(RANDBETWEEN(32768,49151),4)),"-",LOWER(DEC2HEX(RAN

原生JavaScript生成GUID的实现

GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.GUID的唯一缺陷在于生成的结果串会比较大. GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID

C#和sqlserver中生成新的32位GUID

C#中用Guid.NewGuid().ToString() Sql中用NEWID() 以上方法生成的是36位的GUID,如果需要转换成32位,则需要替换掉其中的'-'字符. Sql中的方法:replace(newid(), '-', '') ------------------------------------------ GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

spring中配置quartz调用两次及项目日志log4j不能每天生成日志解决方法

在quartz中配置了一个方法运行时会连续调用两次,是因为加载两次,只需在tomcat的server.xml中修改配置 <Host name="www.xx.cn" appBase="" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="webapps/demo" reloadable=&quo