c++生成GUID码

C++生成GUID码

.NET中生生成GUID(Globally Unique Identifier)比较简单

1 var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12
2 var uuidN = Guid.NewGuid().ToString(“N”); // e0a953c3ee6040eaa9fae2b667060e09
3 var uuidD = Guid.NewGuid().ToString(“D”); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12
4 var uuidB = Guid.NewGuid().ToString(“B”); // {734fd453-a4f8-4c5d-9c98-3fe2d7079760}
5 var uuidP = Guid.NewGuid().ToString(“P”); // (ade24d16-db0f-40af-8794-1e08e2040df3)
6 var uuidX = Guid.NewGuid().ToString(“X”); // {0x3fa412e3,0x8356,0x428f,{0xaa,0x34,0xb7,0x40,0xda,0xaf,0x45,0x6f}}

但是c++生成GUID码有两种方法:

  1. 一是使用windows自带的API,CoCreateGuid函数,不需要依赖其他库,缺点是无法夸平台,只能在windows平台上使用,代码如下:
//生成guid码
Include<objbase.h>
//CoCreateGuid在objbase头文件中
string GetHash()
{
    string ret;
    GUID guid;
    HRESULT h = CoCreateGuid(&guid);//生成GUID码,HESULT是Com组件的一类返回值
    if (h == S_OK)
        ret = GuidToString(guid);//guid转化为string类型
    else
        throw runtime_error("generate guid failed!");
}
//Guid转化为的string
std::string GuidToString(const GUID& guid)
{
    char buf[64] = { 0 };
    sprintf_s(buf, sizeof(buf),
        "{%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]);
    return std::string(buf);
}
  1. 使用Boost库生成GUID使用比较简单,就是要引入Boost库
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>

boost::uuids::uuid uid = boost::uuids::random_generator()();
 const string uid_str = boost::uuids::to_string(uid);
 cout << uid_str << endl;
  1. GUID结构
    GUID 的值表示为一系列小写的十六进制位,这些十六进制位分别以 8 个、4 个、4 个、4 个和 12 个位为一组并由连字符分隔开。 例如,返回值可以是“382c74c3-721d-4f34-80e5-57657b6cbc27”。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
自动生成GUID软件是一种能够帮助用户生成全局唯一标识符(GUID)的软件工具。GUID是一种由16个字节组成的字符串,以保证在全球范围内的唯一性。使用GUID可以确保在分布式系统中的各个组件或实体之间进行唯一标识和定位。 自动生成GUID软件通常具备以下功能: 1. 高效生成:软件能够迅速生成GUID,让用户在需要时能够方便地获得唯一标识符。 2. 多种生成方式:软件可以提供多种生成GUID的方式,如随机生成、基于时间戳生成等。这样用户可以根据具体需求选择适合的生成方式。 3. 批量生成:软件支持批量生成GUID,用户可以一次性生成多个GUID,提高工作效率。 4. 可定制性:软件允许用户进行一定程度的定制,例如可以设置GUID的长度、格式等,以符合不同系统或应用的要求。 5. 图形界面:软件提供直观的图形界面,使得用户能够轻松操作和管理生成GUID。 6. 导出与导入:软件可以支持生成GUID的导出与导入,方便用户进行备份和恢复。 7. 集成接口:软件可以提供与开发工具和应用程序集成的接口,方便开发人员在代中使用生成GUID。 通过使用自动生成GUID软件,用户可以摆脱手动生成GUID的复杂和不便,简化工作流程,提高工作效率。这种软件在分布式系统、数据库管理、身份识别验证等领域具有重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值