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.