Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: TRTTIMethod.Invoke eines Interface ausführen

  Alt 7. Nov 2022, 23:06
Wo genau tritt der Fehler auf?
* wirklich beim Ausführen der Interface-Methode
* oder erst im Serialize

Bei welcher Methode knallt es?
Zitat:
Delphi-Quellcode:
  IInterface = interface
    ...
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
  end;
Diese Beiden solltest du besser nicht ausführen, vor allem nicht das _Release,
weil sonst geschieht es dir zu Recht, wenn es knallt.

Und auch sonst keine gute Idee, einfach so blind irgendwas aufzurufen, wenn man nicht weiß was es macht.
* da könnte auch drin ein format c: oder delete the internet gemacht werden
* oder es wird ein Objekt/Interface zurückgegeben, welches du nicht wieder freigibst (Speicherleck) oder vielleicht doch (peng, wenn es garnicht freigegeben werden darf)
* oder etwas ala Lock/Unlock, z.B. für eine CriticalSection (Deadlock oder schlimmer)
* oder


Aber die Frage ist wie komme ich an das Objekt ran, dass hinter dem Interface steckt?
Eigentlich garnicht, denn das Interface ist ja gerade dafür da, um Implementation (Objekt) und Interface (Schnittstelle) zu trennen.

thing as TObject funktioniert seit ein paar wenigen Jahren, aber ausschließlich für Interfaces, wo auch ein Delphi-Objekt drin steckt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 7. Nov 2022 um 23:13 Uhr)
  Mit Zitat antworten Zitat