Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#24

AW: Adresse einer privaten Methode bekommen

  Alt 19. Jul 2010, 07:48
Das Ganze scheitert schon am Konzept. Du kannst nicht die Adresse einer privaten Prozedur auslesen. Eine private Prozedur ist vom Konzept her (ähnlich wie protected) nur INNERHALB eines Objektes verwendbar. Du kannst sie also auch nicht von außen aufrufen, weil es so aussieht, als würde sie gar nicht existieren. Somit kann sie von RTTI nicht gefunden werden.
Das stimmt so nicht. Mit Delphi 2010 (welches der TE nutzt) kann man von private bis published alles von einer Klasse über RTTI abrufen, sofern dies eingestellt wurde. Dafür gibt es spezielle Compiler Direktiven. Nützt dem TE natürlich nix, da wahrscheinlich nicht mit diesen RTTI Einstellungen kompiliert wurde und er den Source nicht hat (dann könnte er ja auch gleich die Methode fixen )

So weit es möglich ist sollte man eh uaf solche Hacks verzichten. Denn diese Lücke könnte irgendwann geschlossen werden
Ich bin der Meinung, man sollte lieber darauf verzichten, beliebige Sachen als privat zu deklarieren, wenn es keinen echten Grund dafür gibt.
Imo wird eher andersrum nen Schuh draus, es sollte nur public sein, was man auch von außen aufrufen soll/darf/muss. Und protected nur, was vom Design her dafür vorgesehen ist, in abgeleiteten Klassen modifiziert zu werden.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat