Get UUID


#ifndef _LINUX
#include <Rpc.h>
#pragma comment(lib, "Rpcrt4.lib")
#else
#include <uuid/uuid.h>
#endif

string GetUUID()
{
 string strUUID;
#ifndef _LINUX
 UUID uuid;
 ::ZeroMemory(&uuid, sizeof(UUID));
 ::UuidCreate(&uuid);
 char* szGUID = 0;
 if ( RPC_S_OK == ::UuidToStringA( &uuid, (RPC_CSTR*)&szGUID))
 {
  strUUID = szGUID;
  ::RpcStringFreeA((RPC_CSTR*)&szGUID);
 }
#else
 uuid_t uuid;
 uuid_generate(uuid);
 struct UUIDFormat
 {
  unsigned int  data1;
  unsigned short data2;
  unsigned short data3;
  unsigned char data4[8];
 };

 UUIDFormat* uuidFormat = (UUID*)(&uuid);
 char buf[48] = {0};
 snprintf(buf, sizeof(buf),
  "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
  uuidFormat->data1, uuidFormat->data2, uuidFormat->data3,
  uuidFormat->data4[0], uuidFormat->data4[1],
  uuidFormat->data4[2], uuidFormat->data4[3],
  uuidFormat->data4[4], uuidFormat->data4[5],
  uuidFormat->data4[6], uuidFormat->data4[7]);
 strUUID = buf;
#endif
 return strUUID;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值