#include <string>
#include <stdio.h>
#ifdef WIN32
#include <objbase.h>
#else
#include <uuid/uuid.h>
typedef struct _GUID
{
unsigned long Da
unsigned short Da
unsigned short Da
unsigned char Da
} 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.Da
guid.Da
guid.Da
guid.Da
guid.Da
return std::string(buf);
}
}
编译时,WIN32下链接ole32, Linux下链接libuuid
http://www.qtcn.org/blog/blog.php?do-showone-itemid-1245-type-blog.html