全球唯一标识符,如何在线生成获取GUID

GUID(Globally Unique Identifier):全球唯一标识符,是一种由算法生成的字母数字标识符,长度为128位,在Windows平台上,GUID被广泛应用于注册表、数据库、接口标识以及自动生成的目录名称、机器名称等。我们可以自定义GUID对应应用程序,但是我们手动生成就不怎样好,格式有可能不符合标准,我们可以使用在线生成。接下来就跟着小编往下看吧~

1、使用CoCreateGuid函数

#include"ObjBase.h"
#include"string"
usingnamespacestd;
std::stringGenerateGuid()
{
  GUID guid;
  CoCreateGuid(&guid);
charcBuffer[64] = {0};
sprintf_s(cBuffer,sizeof(cBuffer),
"{%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]);
returnstd::string(cBuffer);
}
voidmain(intargc,char**argv)
{
std::stringsGuid = GenerateGuid();
printf(sGuid.c_str());

system("pause");
return;
}

注意:

  (1)使用CoCreateGuid函数需要添加 ObjBase.h 头文件

    (2)CoCreateGuid函数的原型为:HRESULT CoCreateGuid(GUID *pguid);

    (3)GUID的结构定义如下:

typedefstruct_GUID
{
unsignedlongData1;
unsignedshortData2;
unsignedshortData3;
unsignedcharData4[8];
} GUID;

一个GUID总大小为4+2+2+8 = 16字节,格式为:"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", X表示0-9、a-f范围内的任意一位十六进制的数字,例如:3E456AB5-2C14-3D57-5FC3-0123BC54D34A。"5FC3"是Data4[0]和Data4[1], "0123BC54D34A"则是Data4[2]~Data4[7]。

2、使用random_generator函数

#include<iostream>
#include<boost/uuid/uuid.hpp>
#include<boost/uuid/uuid_generators.hpp>
#include<boost/uuid/uuid_io.hpp>
usingnamespacestd;
std::stringGenerateGuid()
{
autouidGen = boost::uuids::random_generator();
  boost::uuids::uuid uid = uidGen();
std::stringstreamsGuid;
  sGuid << uid;
returnsGuid.str();
}
voidmain(intargc,char**argv)
{
std::stringsGuid = GenerateGuid();
cout<< sGuid <

system("pause");
return;
}

注意:

(1)UUID(University Unique Identifier), 别名GUID,位于名称空间boost::uuids中。

(2)boost::uuids::uuid是一个很小的类,内部使用一个16字节的数组data存储UUID值,该数组为public属性,支持任意访问(拷贝或赋值等)。

(3)数组data,类似于一个元素类型为unsigned char的容器,提供了begin()和end()的迭代器支持,可以操作UUID值的每个字节;提供了size()和static_size()方法,可以获得UUID值的长度,它是一个固定值16。

3、工具库的guid在线生成

「guid在线生成工具 https://www.gjk.cn/guid」一键在线批量生成GUID,使用最新随机生成算法,确保生成的UUID全球唯一,不会重复。

如果喜欢这款guid在线生成工具别忘了推荐给你的朋友哦(●◡●)  https://www.gjk.cn/guid

登录 / 注册