AGB  ·  Datenschutz  ·  Impressum  







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

Delphi-Bug bei stdcall-Convention?

Ein Thema von Motzi · begonnen am 17. Apr 2007 · letzter Beitrag vom 18. Apr 2007
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Delphi-Bug bei stdcall-Convention?

  Alt 18. Apr 2007, 12:43
Zitat von Motzi:
Alle Funktionen und Methoden sind als stdcall deklariert, folglich werden die Parameter von rechts nach links auf dem Stack übergeben. Bei einer Funktion wie dieser
function Parse(const s: WideString): IParsedObject; stdcall wäre das also:
  • Zeiger auf String (s)
  • Zeiger auf Objekt (Self - da es eine Methode eines Interface ist)
Für den Rückgabewert schiebt Delphi erst NACH allen anderen Parametern eine Adresse auf den Stack, wo das Ergebnis abgelegt werden soll.
Hi,
das wäre schon an dieser Stelle imho kein stdcall mehr, wenn Delphi eine Adresse auf den Stack schiebt, wo etwas gespeichert werden soll. Ergebnisse werden per Definition immer über das EAX Register zurückgegeben.

An sich muss ich aber sagen, dass ich mir weder vorstellen kann, dass Delphi noch .net hier wirklich schuld sind. Bei Delphi spricht eindeutig dagegen, dass diese Aufrufkonvention ja auch für alle Windows-DLL-Aufrufe verwendet wird (also nicht alle DLLs unter Windows, aber die von MS für Windows).
Bei .net wiederum kann ich mir nicht vorstellen, dass ausgerechnet die hausintern bevorzugte Aufrufkonvention nicht funktionieren sollte! Auch die MS Leute werden sicherlich ihre Funktionen testen. Und wenn hier ein Fehler vorliegen würde, der wäre doch mit Sicherheit schon bekannt.
Bleibt noch die Möglichkeit, dass irgendeine von Dir gewählte Kombination aus Einstellungen und Source dazu führt (muss ja nicht zwangsweise ein Programmierfehler sein), was ich persönlich für wahrscheinlicher halten würde (nicht böse gemeint)

Gruß Der Unwissende
  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 16:26 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