Einzelnen Beitrag anzeigen

Benutzerbild von Dano
Dano

Registriert seit: 12. Aug 2004
49 Beiträge
 
#80

Re: Unbegrenzt viele Nachkommastellen

  Alt 23. Okt 2004, 00:17
hi Hagen

ich habe mal ne kleines test-interface zusammengebastelt
ich deklariere ein interface
initialisiere mit einer function meine felder und die VMT
soweit läuft alles prima *juhu*

nun bereiten mir aber aufrufe denen ich einen parameter übergebe probleme

Delphi-Quellcode:
type
  IMyInterface = Interface(IInterface)
    function GetName: String; stdcall;
    procedure SetName(Name: String); stdcall;
    function GetRefCount: Integer; stdcall;
    property Name: String read GetName write SetName;
  end;
wenn ich TestInterface.Name:='Hallo! ;)'; aufrufe pusht er zuerst den zeiger auf den string
dann pusht er den zeiger auf meinen interface record
dann call't er die funktion SetName(Name: String)

soweit alles ok *freu*

jetzt kommt der übliche stackrahmen (push ebp, mov ebp,esp......) und dann will er den referenzzähler des string erhöhen, und das geht schief
der holt sie den falschen zeiger vom stack ( -> exception).... generell verwechselt er die var's aufm stack
die sind alle um eins verschoben..... ich denke mal das das interface automatisch ein self aufn stack haut(macht er ja auch), und vom compiler wird das in der function nicht berücksichtigt

gibts für das problem ne lösung?

mfg Dano
  Mit Zitat antworten Zitat