在编程过程中,有时我们需要生成一串唯一的GUID字符串编码,win32和linux都提供了类似的api,供程序员使用,下面介绍一段源码,它封装了这种调用方式,供大家使用,源码如下:
#ifdef WIN32
#include
#else
#include
#endif
#define MAX_LEN 128
/*
**@brief: get windows guid or linux uuid
**@return: string type windows guid or linux uuid
*/
static std::string GetGuid()
{
char szuuid[MAX_LEN] = { 0 };
#ifdef WIN32
GUID guid;
CoCreateGuid(&guid);
_snprintf_s(
szuuid,
sizeof(szuuid),
"{%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]);
#else
uuid_t uuid;
uuid_generate(uuid);
uuid_unparse(uuid, szuuid);
#endif
return std::string(szuuid);
}
合理的代码可以有效的提高工作效率,减少重复劳动。