Bei der Interaktion mit einer nativen 64-Bit-Bibliothek über eine explizite 64-Bit-.NET-Anwendung über P/Invoke wird die CallingConvention-Eigenschaft im Attribut DllImport
effektiv ignoriert?Wird CallingConvention in 64-Bit-.NET-Anwendungen ignoriert?
Ich frage dies, weil auf "traditionellen" x86 müssen Sie angeben, wie der Aufrufer oder Aufgerufener stapeln Variablen (und wie die Funktion selbst kann bestimmte CPU-Register etc.); aber soweit ich weiß, hat x64 nur eine einzige Konvention, __fastcall
(die unlängst hinzugefügt __vectorcall
ungeachtet).
Also geht die CLR einfach weiter und Marshall-Funktionsaufrufe mit der __fastcall
x64 Konvention, unabhängig davon, was Sie für die CallingConvention
Eigenschaft festlegen?