GUID及其简易生成代码(c++)

来源:互联网 发布:java表单重复提交 编辑:程序博客网 时间:2024/05/22 06:39

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。

    通常平台会提供生成GUIDAPI。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

    GUID的唯一缺陷在于生成的结果串会比较大。

#include <afx.h>
#include 
<ole2.h>
#include 
<iostream.h>

CString get_strGUID()
{
          GUID   m_guid; 
          CString   strGUID;   
          
if   (S_OK ==::CoCreateGuid(&m_guid))   
           
{         
                         strGUID.Format(
"%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X" ,
                               m_guid.Data1,  m_guid.Data2,   m_guid.Data3 ,
                               m_guid.Data4[
0],   m_guid.Data4[1],
                               m_guid.Data4[
2],   m_guid.Data4[3],
                               m_guid.Data4[
4],   m_guid.Data4[5],
                               m_guid.Data4[
6],   m_guid.Data4[7] );   
           }
   

         
return strGUID;
}


int main()
{      
         
for(int i=0;i<50;++i)
              cout
<<get_strGUID()<<endl;
  
         system(
"pause");
        
return 0;
}

 

附: 一个UUID生成算法的C语言实现 --- WIN32版本       http://blog.csdn.net/cheungmine/archive/2007/09/17/1787891.aspx

原创粉丝点击