Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: API-Funktionen mit Parametern funktionieren bei mir nich

  Alt 23. Mär 2006, 23:50
Ich werfe mal ein Stichwort in die Runde: Aufrufkonvention. Deklarier die Funktion mal als stdcall. Die Aufrufkonvtion legt fest, wie mit den Parametern umgegangen werden soll. Also in welcher Reihenfolge sie auf den Stack abgelegt werden und wer den Stack wieder aufräumt, der Caller oder die augerufene Funktion. Da du keine Aufrufkonvention angegeben hast nimmt Delphi register als Aufrufkonvention an, das heißt die Parameter werden, wenn möglich in den Registern der CPU abgelegt, was am effizientesten ist. Windows arbeitet aber mit der Aufrufkonvention stdcall.

Code:
Direktive | Parameterreihenfolge | Bereinigung | Parameterübergabe in Register
register   links nach rechts     Routine      ja
pascal     links nach rechts     Routine      nein
cdecl      rechts nach links     Aufrufer     nein
stdcall    rechts nach links     Routine      nein
safecall   rechts nach links     Routine      nein
Och manno, nur weil ich mir mal richtig Mühe gegeben habe, bin ich letzter geworden. Das Leben ist ungerecht.

PS:
@sakura: Es ist wieder alles gut.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat