Posted on 2008-06-07 22:06
nt05 阅读(284)
评论(0) 编辑 收藏 引用 所属分类:
windows nt
http://baike.baidu.com/view/185358.htm
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f
范围内的一个十六进制的数字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
GUID guid;
CoCreateGuid(&guid);
char strData1[9];
char strData2[5];
char strData3[5];
char strData4[8][3];
sprintf(strData1,"%08X",guid.Data1);
sprintf(strData2,"%04X",guid.Data2);
sprintf(strData3,"%04X",guid.Data3);
sprintf(strData4[0],"%02X",guid.Data4[0]);
sprintf(strData4[1],"%02X",guid.Data4[1]);
sprintf(strData4[2],"%02X",guid.Data4[2]);
sprintf(strData4[3],"%02X",guid.Data4[3]);
sprintf(strData4[4],"%02X",guid.Data4[4]);
sprintf(strData4[5],"%02X",guid.Data4[5]);
sprintf(strData4[6],"%02X",guid.Data4[6]);
sprintf(strData4[7],"%02X",guid.Data4[7]);
m_strID.Format("{%s-%s-%s-%s%s-%s%s%s%s%s%s}",strData1,strData2,strData3,
strData4[0],strData4[1],strData4[2],strData4[3],strData4[4],strData4[5],strData4[6],strData4[7]);