C++ 生成UUID
C++创建UUID的两种方法:
std::string newGUID()
{
char buf[50];
memset(buf, 0, sizeof(buf));
GUID guid;
if (S_OK == ::CoCreateGuid(&guid)) {
sprintf_s(buf, 50, "{%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);
}
使用BOOST的话:
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/lexical_cast.hpp>
std::string getUUID()
{
boost::uuids::random_generator rgen; //随机生成器
boost::uuids::uuid a_uuid = rgen(); //生成一个随机的UUID
std::string str = boost::lexical_cast<std::string>(a_uuid); //uuid转换到字符串
return str;
}