【问题标题】:Delphi UUID generatorDelphi UUID 生成器
【发布时间】:2010-02-20 01:44:39
【问题描述】:

Delphi 有内置的东西来生成 UUID 吗?

【问题讨论】:

    标签: delphi uuid


    【解决方案1】:
    program Guid;
    
    {$APPTYPE CONSOLE}
    
    uses
    SysUtils;
    
    var
    
    Uid: TGuid;
    Result: HResult;
    
    begin
    Result := CreateGuid(Uid);
    if Result = S_OK then
       WriteLn(GuidToString(Uid));
    end.
    

    在幕后CreateGuid() 调用各种 API 之一,具体取决于平台。例如在 Windows 上,它现在调用UuidCreate

    【讨论】:

      【解决方案2】:

      另外,如果您需要 GUID 来声明接口,请在代码编辑器中点击 ctrl+shift+g 以插入 GUID在插入符号处。

      【讨论】:

      【解决方案3】:

      如果您使用的是最新版本的 Delphi 之一,并且包含 SysUtils,您可以调用 TGuid.NewGuid 来生成新的 guid。

      NewGuid 实际上是在 TGuid (TGuidHelper) 的帮助器类中实现的,它在 SysUtils 中声明。

      此函数调用 CreateGUID 方法(也在 SysUtils 中,并且在 Mitch Wheat 的答案中已经提到),这实际上是一个跨平台函数,根据它运行的平台调用不同的库。

      【讨论】:

      • 这是跨平台吗?
      • @MehmetFide - 你可以自己查看文档docwiki.embarcadero.com/Libraries/Tokyo/en/…
      • 这是我一直在寻找的,但它并没有完全发挥作用。由于它是 TGUID 的类助手,因此实际上调用 TGuidHelper.NewGuid 不起作用。您需要致电TGuid.NewGuid。这仅在您明确包含 SysUtils 时才有效,因为 TGuid 是系统,但助手在 SysUtils 中。我希望你不介意我用这些信息更新了答案。
      【解决方案4】:

      是的TGUID,看这个例子

      program Guid;
      
      {$APPTYPE CONSOLE}
      
      uses
      SysUtils;
      
      begin
        WriteLn(TGUID.NewGuid.ToString());
      end.
      

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 2017-06-25
        • 2013-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-25
        • 1970-01-01
        相关资源
        最近更新 更多