Задать вопрос
@sddvxd

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

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

int WINAPI ...

в названиях функций. Не подскажете, что это может обозначать?
  • Вопрос задан
  • 306 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
На x86 оба они — макроопределения для нестандартного соглашения вызова __stdcall.
На ARM они ничего не делают.

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

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

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

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

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