Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Delphi -> Asm -> Stackproblem?

  Alt 5. Aug 2007, 07:54
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat