AGB  ·  Datenschutz  ·  Impressum  







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

Delphi -> Asm -> Stackproblem?

Ein Thema von Gruber_Hans_12345 · begonnen am 4. Aug 2007 · letzter Beitrag vom 5. Aug 2007
Antwort Antwort
Seite 2 von 2     12   
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Delphi -> Asm -> Stackproblem?

  Alt 5. Aug 2007, 11:11
Zitat von Luckie:
Na bitte, lag also doch an deinem Code und nicht am Compiler/Linker. Die Wahrscheinlichkeit, dass der Compiler/Linker kaputten ASM-Code produziert halte ich für sehr gering. Wahrscheinlicher ist da schon eher, dass der Programmiere einen Fehler macht.
Also das halte ich für ein Gerücht - in meinem code war kein fehler

Zitat von sirius:
Das hat aber auch einen Grund, warum das "safecall" ist. Das solltest du nur abändern, wenn diese Funktionen/Methoden auch von deinem Speichermangaer verwaltet werden, also nicht in einer DLL ausgelagert sind. Oder das eben anderweitig sichergestellt ist, dass keine Exceptions von der DLL in dein Hauptprogramm fliegen können.

Allerdings müsste der Compiler auch bei safecall alles richtig machen.
Bei safecall wird das Ergebniss (HResult) als var-Parameter am Ende mit übergeben (Deswegen der zusätzliche push). In EAX (dem eigentlichen result) liegt dann ein Fehlercode vor, falls eine Exception aufgetreten ist. Normalerweise weis das der Compiler und ruft nach dem Aufruf einer safecall-Funktion immer eine Behandlungsroutine auf.

Hier, in Beitrag #9 hatte ich mal bisschen was dazu geschrieben.
ja, mir ist schon klar, das man die aufrufkonventionen nicht einfach so ändern darf/kann, aber da anscheinend, das zusätzliche push eax, das wir bei einem safeCall haben, auf dem Strack übrig bleibt und anschließend den ganzen stack verfälscht und nur noch exception kommen, wird vermutlich die funktion in der DLL ohne der safecall funktion gebaut worden sein ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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