Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: [Artikel] Aufrufkonventionen

  Alt 27. Mär 2006, 09:28
Ich verbessere jetzt mal, damit sich das nicht noch jemand falsch merkt.

Zitat von Robert Marquardt:
Bei stdcall (frueher pascal genannt) ...
stdcall wurde noch nie pascal genannt. Früher (16-Bit Windows) benutzten alle API-Funktionen die pascal Aufrufkonvention, heute benutzen sie stdcall.

Zitat von Robert Marquardt:
Damit kann man in C (deshalb der Name cdecl) nun die Parameter als Array ueber einen Pointer zugreifen.
Nicht falsch, aber vielleicht noch als Ergänzung: das ursprüngliche C kannte keine Prototypen. Man konnte die Routine
Code:
int open(name, flags, mode)
     char *name;
     int flags, mode;
{
}
auch einfach mit dem Parameter "5" aufrufen (und abstürzen lassen). Bei vielen C-Library-Funktionen (wie hier open) hat man dann optionale Parameter nach hinten gepackt, damit man sie einfach weglassen konnte ("mode" wird hier nur beim Anlegen einer neuen Datei gebraucht). Man kann also in ganz einfachem C nicht nur über ein Array auf diese Parameter zugreifen.

Zitat von Robert Marquardt:
register ... Es werden so viele Parameter wie moeglich in Register gepackt und der Rest geht nach stdcall-Konvention.
Nein, danach geht's in der pascal-Konvention weiter.


@Luckie: in deinem Beitrag ist aber alles korrekt dargestellt.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat