【发布时间】:2010-02-20 01:44:39
【问题描述】:
Delphi 有内置的东西来生成 UUID 吗?
【问题讨论】:
Delphi 有内置的东西来生成 UUID 吗?
【问题讨论】:
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。
【讨论】:
另外,如果您需要 GUID 来声明接口,请在代码编辑器中点击 ctrl+shift+g 以插入 GUID在插入符号处。
【讨论】:
如果您使用的是最新版本的 Delphi 之一,并且包含 SysUtils,您可以调用 TGuid.NewGuid 来生成新的 guid。
NewGuid 实际上是在 TGuid (TGuidHelper) 的帮助器类中实现的,它在 SysUtils 中声明。
此函数调用 CreateGUID 方法(也在 SysUtils 中,并且在 Mitch Wheat 的答案中已经提到),这实际上是一个跨平台函数,根据它运行的平台调用不同的库。
【讨论】:
TGuidHelper.NewGuid 不起作用。您需要致电TGuid.NewGuid。这仅在您明确包含 SysUtils 时才有效,因为 TGuid 是系统,但助手在 SysUtils 中。我希望你不介意我用这些信息更新了答案。
是的TGUID,看这个例子
program Guid;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
WriteLn(TGUID.NewGuid.ToString());
end.
【讨论】: