The following calling conventions are supported by the Visual C/C++ compiler.
Keyword / Stack cleanup / Parameter passing
__cdecl / Caller / Pushes parameters on the stack, in reverse order (right to left)
__clrcall / n/a / Load parameters onto CLR expression stack in order (left to right).
__stdcall / Callee / Pushes parameters on the stack, in reverse order (right to left)
__fastcall / Callee / Stored in registers, then pushed on stack
__thiscall / Callee / Pushed on stack; this pointer stored in ECX
The __pascal, __fortran, and __syscall calling conventions are no longer supported. You can emulate their functionality by using one of the supported calling conventions and appropriate linker options.
WINDOWS.H now supports the WINAPI macro, which translates to the appropriate calling convention for the target. Use WINAPI where you previously used PASCAL or __far __pascal.