Delphi GUID 获取GUID值的方式  
官方Delphi 学习QQ群: 682628230(三千人)
频道

Delphi GUID 获取GUID值的方式


Delphi GUID 获取GUID值的方式


Delphi GUID介绍

全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
GUID一词有时也专指微软对UUID标准的实现。
在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如注册表项、类及接口标识、数据库、系统目录等对象。

 

GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。


源码:


function CoCreateGuid(out guid: TGUID): HResult; stdcall; external 'ole32.dll' name 'CoCreateGuid';

 

function CreateGUID(out Guid: TGUID): HResult;

begin

  Result := CoCreateGuid(Guid);

end;

 

function GUIDToString(const GUID: TGUID): string;

var

  P: PWideChar;

begin

  if not Succeeded(StringFromCLSID(GUID, P)) then

    ConvertError(@SInvalidGUID);

  Result := P;

  CoTaskMemFree(P);

end;  

   


方式1:



   

function GetGUID: string;

var

  Guid: TGUID;

begin

  CreateGUID(Guid);

  Result := GUIDToString(Guid);

end;

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  ShowMessage(GetGUID);

end;

   


方式2:


function Guid_Gen: ansistring;

var

  s,gstr: string;

  i: longint;

begin

  s := '0123456789abcdef';

    //8-4-4-4-12

  gstr := 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

  for i := 1 to length(gstr) do

  begin

    if gstr[i] = 'x' then

      gstr[i] := s[Random(16) + 1];

  end;

  Result:=gstr;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

   ShowMessage(Guid_Gen);

end;



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.17075300216675 seconds