__stdcallは、WIN32 APIの呼び出し規約で、スタックの解放を呼ばれた側が行い(したがって、varargは使用不可)、__cdeclは、スタックの解放を呼ぶ側が行う(したがって、varargを使用可能)。 テストコード #include <stdio.h> int __stdcall scall(int a, int b) { printf("a=%d,b=%d\n", a, b); return a * b; } int __cdecl ccall(int a, int b) { printf("a=%d,b=%d\n", a, b); return a * b; } int main(int argc, char* argv[]) { scall(1, 2); ccall(1, 2); return 0; } アセンブラリスト __stdcall ?scall@@YGHHH