UUID/GUID的生成封装(Win32/Linux)
2015-02-06 02:14
267 查看
#include <string>
#include <stdio.h>
#ifdef WIN32
#include <objbase.h>
#else
#include <uuid/uuid.h>
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID, UUID;
#endif
namespace ChinuxTeam
{
GUID CreateGuid()
{
GUID guid;
#ifdef WIN32
CoCreateGuid(&guid);
#else
uuid_generate(reinterpret_cast<unsigned char *>(&guid));
#endif
return guid;
}
std::string GuidToString(const GUID &guid)
{
char buf[64] = {0};
#ifdef __GNUC__
snprintf(
#else // MSVC
_snprintf_s(
#endif
buf,
sizeof(buf),
"{%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);
}
}
编译时,WIN32下链接ole32, Linux下链接libuuid
http://www.qtcn.org/blog/blog.php?do-showone-itemid-1245-type-blog.html
#include <stdio.h>
#ifdef WIN32
#include <objbase.h>
#else
#include <uuid/uuid.h>
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID, UUID;
#endif
namespace ChinuxTeam
{
GUID CreateGuid()
{
GUID guid;
#ifdef WIN32
CoCreateGuid(&guid);
#else
uuid_generate(reinterpret_cast<unsigned char *>(&guid));
#endif
return guid;
}
std::string GuidToString(const GUID &guid)
{
char buf[64] = {0};
#ifdef __GNUC__
snprintf(
#else // MSVC
_snprintf_s(
#endif
buf,
sizeof(buf),
"{%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);
}
}
编译时,WIN32下链接ole32, Linux下链接libuuid
http://www.qtcn.org/blog/blog.php?do-showone-itemid-1245-type-blog.html
相关文章推荐
- Excel生成guid、uuid
- 如何在Java中生成UUID / GUID
- 微信公号“架构师之路”学习笔记(四)-分布式ID生成算法(应用场景、uuid/guid、snowflake算法)
- 利用GUID/UUID生成token及验证token的正确性
- Linux & Windows上生成UUID/GUID
- Java,Javascript,Oracle开发生成UUID或GUID方法总结
- php中生成标准uuid(guid)的方法
- php中生成标准uuid(guid)的方法
- 怎样用java生成GUID与UUID
- 随机生成UUID(GUID)的方法
- 关于UUID和GUID,教你如何使用JDK自带的UUID生成主键。
- java 生成GUID与UUID
- 怎样用java生成GUID与UUID
- 跨平台生成GUID/UUID
- flash as3 GUID UUID 生成类
- GUID UUID 生成
- iOS 生成 UUID(GUID)
- pb中使用winapi生成全球唯一标示码(GUID,UUID)
- 怎样用java生成GUID与UUID
- java生成GUID与UUID