@sddvxd

Что за WINAPI, CALLBACK перед названиями функций?

Начал изучать WinApi и часто встречаю такую запись:

int WINAPI ...

в названиях функций. Не подскажете, что это может обозначать?
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
На x86 оба они — макроопределения для нестандартного соглашения вызова __stdcall.
На ARM они ничего не делают.

Соглашение вызова — это…
• как на уровне регистров мы вызываем функцию;
• кто подчищает стек за вызывающим;
• кто отвечает за восстановление регистров, если они менялись (или есть риск, что они менялись).

stdcall — вызов через стек, справа налево, за очистку стека отвечает функция, результат в eax (rax), функция отвечает за восстановление сегментных регистров, esp и ebp, программа за остальные.

На ARM используется соглашение cdecl. То же самое, но за очистку стека отвечает программа (что там на ARM с регистрами, я не в курсе).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы