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.