99% процентов экспортируемых функций Windows используют соглашение о вызовах stdcall .В 32-битном x86 это создает меньший, более эффективный код, потому что вызываемый восстанавливает стек.
Функции, которые принимают переменное число аргументов, не могут использовать stdcall, потому что только вызывающая сторона знает, сколько существует аргументов и, следовательно, вызывающая сторона имеетдля восстановления стека.
printf
- это не функция Windows, это функция библиотеки C, и большая часть библиотеки C использует соглашение о вызовах cdecl *1009*, когда вызывающая сторона восстанавливает стек.Предоставляемые Windows функции печати, такие как wsprintf
, также являются cdecl.Можно предположить, что любая функция API, заканчивающаяся ...
в качестве последнего параметра, использует cdecl.