C ++ Как вызвать код с неподдерживаемым соглашением о вызовах - PullRequest
4 голосов
/ 16 сентября 2011

У меня есть x86 DLL (к которой у меня нет источника), которую мне нужно вызывать из программы на C ++ (VC ++ 10).

Мне сказали, что соглашение о вызовах слева направо, спервые три параметра, переданные в регистрах EAX, ECX и EDX, и очистка стека вызываемых (а также другие детали, такие как аргументы / возвраты с плавающей запятой и т. д.)у меня есть файл, содержащий каждое из нескольких сотен определений функций, или, что еще лучше, «расскажет» компилятору о соглашении), чтобы я мог затем вызывать эти функции как обычно?Все используемые типы являются хорошими простыми (void, int, char *, float и т. Д.), Если это помогает.

1 Ответ

2 голосов
/ 16 сентября 2011

Я бы начал с просмотра libffi .

...