![]() |
Problem mit interfaces und überladenen Funktionen
Moin moin,
ich würde gerne ein interface mit einer überladenen Funktion implementieren, das in etwa so aussieht:
Delphi-Quellcode:
So weit so gut, hier meckert der Compiler noch nicht. Wenn ich jetzt jedoch versuche, eine TStringList von diesem Interface abzuleiten und die beiden Funktionen deklariere bekomme ich den Fehler, dass nach Methodendeklarationen keine Felddeklarationen mehr erlaubt seien. Nur: da kommt weit und breit kein Feld mehr in meiner Klassendeklaration :(
IMyInterface = interface(IInvokable)
[GUID] function Add(const s: string): WORD; stdcall; overload; function Add(const s: TStrings): WORD; stdcall; overload; end; Ich habe im Moment mal garkeine Ahnung, wo es da hakt. Nehme ich eine der beiden Funktionen testweise raus, funktioniert alles einwandfrei. Nur mit der überladenen klappt es nicht. |
Re: Problem mit interfaces und überladenen Funktionen
Hallo Meflin,
hast du einmal versucht, die Direktiven overload und stdcall zu vertauschen? Mit dem Methodennamen Add wäre ich an deiner Stelle vorsichtig, der wird nämlich bereits von TStrings verwendet. Gruß Hawkeye |
Re: Problem mit interfaces und überladenen Funktionen
Hallo Hawkeye,
Zitat:
Zitat:
Edit: 3333. Beitrag :party: |
Re: Problem mit interfaces und überladenen Funktionen
Gut, wenn man in der Implementation overload und stdcall vertauscht, dann funktioniert es.
Wenn ich jetzt allerdings beispielswweise beim Ableiten von TStringList noch ein override benutzen möchte, bekomme ich wieder obige Fehlermeldung :( Habe schon via Trial- und Error nene haufen Reihenfolgen für die drei direktiven probiert, komme aber auf keinen grünen Zweig :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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