Argument-Übergeben und Namenskonventionen

Microsoft-spezifisch

Alle Argumente werden zu 32 Bits erweitert, wenn sie übergeben werden.Rückgabewerte werden ebenfalls erweitert und 32 Bits in EAX-Register zurückgegeben, außer 8-Byte-Strukturen, die im EDX zurückgegeben werden: EAX-Register.Größere Strukturen werden im EAX-Register wie Zeiger auf den verborgenen Return strukturen zurückgegeben.Parameter werden auf dem Stapel von rechts nach links verschoben.Strukturen, die nicht Hülsen sind, werden nicht in Registern zurückgegeben.

Der Compiler generiert Einleitungs- und Epilogcode, um die ESI-, EDI-, EBX- EBP-Register und speichern und wiederherzustellen, wenn sie in der Funktion verwendet werden.

HinweisHinweis

Wenn eine Struktur, Union oder Klasse aus einer Funktion als Wert zurückgegeben wird, schlagen möglicherweise alle Definitionen des Typs müssen identisch sein. Andernfalls das Programm zur Laufzeit aus.

Weitere Informationen zum Einrichten des eigenen Funktion einleitungs- und Epilogcode finden Sie unter Nackte Funktionsaufrufedefiniert.

Die folgenden Aufrufkonventionen werden vom Sicht-C/C++-Compiler unterstützt.

Schlüsselwort

Stapelcleanup

Übergeben von Parametern

__cdecl

Aufrufer

Legt Parameter auf dem Stapel in umgekehrter Reihenfolge (von rechts nach links)

__clrcall

nicht verfügbar

Ladeparameter auf CLR-Ausdrucksstapel in der Reihenfolge (von links nach rechts).

__stdcall

Wird Person

Legt Parameter auf dem Stapel in umgekehrter Reihenfolge (von rechts nach links)

__fastcall

Wird Person

Gespeichert in Registern und dann auf Stapel gelegt

__thiscall

Wird Person

Gedrückt auf Stapel. dies Zeiger in ECX gespeichert

Weitere Informationen finden Sie unter Veraltete Aufrufkonventionen.

ENDEN-Besondere

Siehe auch

Referenz

Aufrufkonventionen