Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#7

AW: Interface Methoden Reihenfolge

  Alt 21. Mai 2018, 21:06
DLL-Exports können über Name und/oder Index erfolgen.

Interface-Methoden werden "ausschlißelich" durchnummeriert und der Methoden-Name hat in der Interface deklatation keinerlei Wirkung.

Ich weiß im Moment nicht, ob/wie man im Pascal/Delphi den Index definieren kann, außer automatisch über die Reihenfolge der Definition.



Auch der Interface-Name hat für Windos keine Funktion, denn das kennt nur die GUID.

Folgende Deklarationen sind somit identisch:
Delphi-Quellcode:
IMyInterface = interface
  ['{C0970276-A593-4825-BA92-53FBF6CCC1F0}']
  procedure TestProcedure1;
  function SomeValueReturningFunction: Integer;
  function AnotherFuntion: Boolean;
end;

jfdsakchdsiuhdjskxgfbjhdsgaf = interface
  ['{C0970276-A593-4825-BA92-53FBF6CCC1F0}']
  procedure nfkdhkjcndbsjkrhfjkdsnbfvkds;
  function jfkdsfhajiodsjcjkdsbnjkfhbdjksa: Integer;
  function fjdshfkjdhsgfjgdsjh: Boolean;
end;

IMyIntf = interface
  ['{C0970276-A593-4825-BA92-53FBF6CCC1E1}']
  procedure TestProcedure1;
  function SomeValueReturningFunction: Integer;
end;
IMyInterface = interface(IMyIntf)
  ['{C0970276-A593-4825-BA92-53FBF6CCC1F0}']
  function AnotherFuntion: Boolean;
end;
Es kommt ausschließlich auf Reihenfolge und Funktionssignaturen drauf an.

Das geht über die Vererbung hinaus, weswegen QueryInterface/_AddRef/_Release aus IInteface überall die selben ordinalen Werte hat und alle weiteren Methoden ab da hochzählen, über alle Hierarchien hinweg.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Mai 2018 um 21:13 Uhr)
  Mit Zitat antworten Zitat