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库可以在多平台下使用,且代码更加简洁易懂。
很赞哦! ()