> Типа есть DLL. Надо определить какие соглашения о вызовах > были использованы для экспортируемых функций при её > компиляции.
Но можно попробовать эвристик. Найти выход из функции, если перед выходом со стека снимается не только фрейм, но и аргументы - то 100% __stdcall:
mov esp, ebp
pop ebp
retn N
---
Если же перед выходом аргументы не снимаются, то либо __cdecl, либо __stdcall без параметров:
mov esp, ebp
pop ebp
ret
---
Это если функцию вызывать нельзя. Если же такого ограничения нет, то перед вызовом (перед выкладыванием аргументов) сохраняешь старое значение указателя стека, вызываешь, проверяешь были ли сняты аргументы. Если были - __stdcall, если нет - __cdecl.
|