![]() |
doppelte Interface-GUID´s?
Wenn man nicht aufpasst und z.B. durch C&P in einem Projekt oder gar Unit zwei mal die gleiche Interface-GUID verwendet bemeckert das der Compiler offenbar nicht.
Oder kann man das mögliche Problem irgendwie erkennen?
Delphi-Quellcode:
...
IA = interface ['{60A622F7-4E7F-4A62-84C5-603F410A087A}'] ... end; IB = interface ['{60A622F7-4E7F-4A62-84C5-603F410A087A}'] ... end; |
AW: doppelte Interface-GUID´s?
Gut, daß Delphi das nicht merkt, sonnst könntest du die OLE- und die ActiveX-Units nicht gleichzeitig in einem Projekt nutzen, denn dort sind viele Interfaces doppelt drin. :roll:
Nja, solange die beiden Interfaces nicht im selben Objekt supportet werden sollen, oder sie an gemeinsamer Stelle für unterschiedliche Funktionen stehen, gibt es eigentlich kein Problem. Was passiert denn bei
Delphi-Quellcode:
?
TMyClass = class(TInterfacedObject, IA, IB)
|
AW: doppelte Interface-GUID´s?
Zitat:
|
AW: doppelte Interface-GUID´s?
Und raus bekommt man dann "vermutlich" immer nur IA (das erste), selbst wenn man auf IB abfragt (Supports).
Wobei mich mal interessieren würde, ob Delphi die "identischen" Interfaces (GUIDs) dann wegoptimiert, oder ob die dann doppelt drin stehen. Vielleicht auch mal im Vergleich zu
Delphi-Quellcode:
TMyClassA = class(TInterfacedObject, IA)
end; TMyClassB = class(TMyClassA, IB) // oder nochmals class(TMyClassA, IA) end; |
AW: doppelte Interface-GUID´s?
Zitat:
Direkte Zuweisungen zu Interface-Variablen des einen oder andere Typs werden aber korrekt aufgelöst. Da scheint die GUID nicht zu interessieren. |
AW: doppelte Interface-GUID´s?
Bei der Zuweisung hat Borland halt nichts "Spezielles" eingebaut und geht da vermutlich rein auf die RTTI/TypeInfo.
Ansonsten müssten die ja den Typ-Namen ignorieren, die GUID vergleichen und eigentlich auch noch die Definitionen der Methoden (dabei wieder die Namen der Methoden und Parameter ignorieren). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz