c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

c生成GUID的两种方法

黄芸欢 2023-09-11编程经验
c++生成GUID的两种方法GUID是唯一标识符,也称为UUID(UniversallyUniqueIdentifier)。常见的应用场景有数据同步、分布式系统等。方法一:使用WinApiWindows操作系

c++生成GUID的两种方法

GUID是唯一标识符,也称为UUID(Universally Unique Identifier)。常见的应用场景有数据同步、分布式系统等。

方法一:使用WinApi

Windows操作系统提供了一种获取GUID的方法,可以通过调用Windows API函数UuidCreate来实现。示例如下:

#include <windows.h>
#include <iostream>

void GetGuid1(std::string& guid)
{
    UUID uuid;
    UuidCreate(&uuid);
    RPC_CSTR strGuid=NULL;
    UuidToStringA(&uuid, &strGuid);
    guid=(char*)strGuid;
    RpcStringFreeA(&strGuid);
}

int main()
{
    std::string guid;
    GetGuid1(guid);
    std::cout << guid << std::endl;
    return 0;
}

方法二:使用boost库

Boost是一个流行的C++库,提供了许多实用的功能,其中就包括生成GUID的方法。

首先需要下载以及安装Boost库。示例代码如下:

#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <iostream>

void GetGuid2(std::string& guid)
{
    boost::uuids::uuid u=boost::uuids::random_generator()();
    guid=boost::uuids::to_string(u);
}

int main()
{
    std::string guid;
    GetGuid2(guid);
    std::cout << guid << std::endl;
    return 0;
}

总结

使用WinApi或Boost库都可以很容易的实现生成GUID的功能。

WinApi库在Windows平台上使用效果更佳;

Boost库可以在多平台下使用,且代码更加简洁易懂。

文章评论