AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unbegrenzt viele Nachkommastellen

Ein Thema von c113plpbr · begonnen am 8. Dez 2003 · letzter Beitrag vom 9. Aug 2011
 
Benutzerbild von Dano
Dano

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

Re: Unbegrenzt viele Nachkommastellen

  Alt 22. Okt 2004, 23: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
 


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 02:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz