AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem mit interfaces und überladenen Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit interfaces und überladenen Funktionen

Offene Frage von "Meflin"
Ein Thema von Meflin · begonnen am 22. Feb 2008 · letzter Beitrag vom 27. Feb 2008
Antwort Antwort
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#1

Problem mit interfaces und überladenen Funktionen

  Alt 22. Feb 2008, 08:13
Moin moin,

ich würde gerne ein interface mit einer überladenen Funktion implementieren, das in etwa so aussieht:
Delphi-Quellcode:
IMyInterface = interface(IInvokable)
[GUID]
  function Add(const s: string): WORD; stdcall; overload;
  function Add(const s: TStrings): WORD; stdcall; overload;
end;
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

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.

  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Problem mit interfaces und überladenen Funktionen

  Alt 22. Feb 2008, 08:55
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
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Problem mit interfaces und überladenen Funktionen

  Alt 22. Feb 2008, 09:28
Hallo Hawkeye,

Zitat von Hawkeye219:
hast du einmal versucht, die Direktiven overload und stdcall zu vertauschen?
Ich glaube ja - ein override war dann in der Implementation auch noch dabei, und erlichgesagt hab ich garkeine Ahnung ob es da auf die Reihenfolge ankommt und, sollte dies der Fall sein, wie die Reihenfolge lauten müsste.

Zitat:
Mit dem Methodennamen Add wäre ich an deiner Stelle vorsichtig, der wird nämlich bereits von TStrings verwendet.
Aber die TStrings sind doch nur der Parameter. Aber gut, ich kann es ja mal Testweise umbenennen. Da ich ja wie gesagt keine Ahnung habe woher das Problem kommt kann ich das natürlich als Ursache auch nicht ausschließen

Edit: 3333. Beitrag

  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Problem mit interfaces und überladenen Funktionen

  Alt 27. Feb 2008, 11:01
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

  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz