C++ 产生guid

来源:互联网 发布:Java中import 编辑:程序博客网 时间:2024/06/04 00:32

windows下:

std::string CreateGuid()    {        char buffer[GUID_LEN] = { 0 };        GUID guid;        if (CoCreateGuid(&guid))        {            fprintf(stderr, "create guid error\n");            return "";        }        _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]);         printf("guid: %s\n", buffer);         return std::string(buffer);    }


linux下(没有验证过):

std::string CreateGuid()    {        uuid_t uu;        char str[36];        uuid_generate( uu );        uuid_unparse(uu, str);        return std::string(str);    }


注意:

windows下需要引用 ole32.lib

在linux下编译时需要链接uuid库(-luuid)



0 0