MSDNによると、

__cdecl 呼び出し規約は、C/C++ プログラムのデフォルトの呼び出し規約です。スタックは呼び出し側がクリアするので、vararg 関数を使用できます。
廃止された呼び出し規約
__pascal、__fortran、__syscall の各呼び出し規約はサポートされなくなりました。これらの機能をエミュレートするには、サポートされている呼び出し規約と目的のリンカ オプションを使用します。
WINDOWS.H で WINAPI マクロを使用できるようになりました。このマクロは、ターゲットに合った呼び出し規約に変換します。PASCAL または __far __pascal の代わりに WINAPI を使用します。

cdecl では、右側の引数から順番にスタックに積まれる。
pascal では、左側の引数から順番にスタックに積まれる。
……らしい。よくわからないけど。

参考: Cプレイングマニュアル(すでに品切れ)

tags: Windows zurazure

Posted by NI-Lab. (@nilab)