参考博客:
代码:
#include <string>
#ifdef _WINDOWS
#include <stdio.h>
#include <objbase.h>
#define GUID_LEN 64
#else
#include <uuid/uuid.h>
#endif
using namespace std;
std::string getUuid()
{
#ifdef _WINDOWS
char buffer[GUID_LEN] = { 0 };
GUID guid;
if(CoCreateGuid(&guid))
{
fprintf(stderr, "create guid error\n");
}
_snprintf(buffer, sizeof(buffer),
"%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 string(buffer);
#else
uuid_t uu;
int i;
uuid_generate(uu);
for (i = 0; i < 16; i++)
{
printf("%02X-", uu[i]);
}
return to_string(uu);
#endif
}
2021年5月31日 更新
#ifdef _WINDOWS
#include <direct.h>
#include <set>
#include <objbase.h>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#else
#include <uuid/uuid.h>
#endif
#ifdef _WINDOWS
boost::uuids::uuid pcz_s_uuid;
#else
uuid_t pcz_s_uuid;
#endif
#if _WINDOWS
pcz_s_uuid = boost::uuids::random_generator()();
const std::string tmp_uuid = boost::uuids::to_string(pcz_s_uuid);
strcpy(strmuuid, tmp_uuid.c_str());
#else
uuid_generate(pcz_s_uuid);
uuid_unparse(pcz_s_uuid, strmuuid);
#endif
方法三:使用qt的QUUID 来创建uuid