gpt4 book ai didi

delphi - 在 Delphi 中使用接口(interface)是否需要 GUID?

转载 作者:行者123 更新时间:2023-12-03 14:34:47 25 4
gpt4 key购买 nike

官方文档说它们是可选的。我知道 COM 互操作需要每个接口(interface)有一个唯一的标识符,但我看到的每个接口(interface)示例都有一个 GUID,无论它是否与 COM 一起使用?如果不与 COM 一起使用,包含 GUID 有什么好处吗?

最佳答案

我注意到一些方法,例如 Supports (确定一个类是否符合特定接口(interface))要求您先定义一个 GUID,然后才能使用它们。

This page通过以下信息确认:

Note: The SysUtils unit provides an overloaded function called Supports that returns true or false when class types and instances support a particular interface represented by a GUID. The Supports function is used in the manner of the Delphi is and as operators. The significant difference is that the Supports function can take as the right operand either a GUID or an interface type associated with a GUID, whereas is and as take the name of a type. For more information about is and as, see Class References.

这里有一些 interesting information about interfaces ,其中指出:

Why does an interface need to be uniquely identifiable? The answer is simple: because Delphi classes can implement multiple interfaces. When an application is running, there has to be a mechanism that will get pointer to an appropriate interface from an implementation. The only way to find out if an object implements an interface and to get a pointer to implementation of that interface is through GUIDs.

在两个引号中添加强调。

阅读整篇文章也会让您意识到QueryInterface (需要 GUID)出于引用计数等原因在幕后使用。

关于delphi - 在 Delphi 中使用接口(interface)是否需要 GUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2992183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com