Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что такое __stdcall

1.2K
02 апреля 2005 года
BigBug
93 / / 30.07.2004
В функциях передающихся по указателю другим функциям
используется слово CALLBAC которое если я правильно понимаю является
#define CALLBAC __stdcall
Но зачем он нужен ?
Ведь одной функции можно передать указатель на другую без него.
487
02 апреля 2005 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by BigBug
В функциях передающихся по указателю другим функциям
используется слово CALLBAC которое если я правильно понимаю является
#define CALLBAC __stdcall
Но зачем он нужен ?
Ведь одной функции можно передать указатель на другую без него.



__stdcall - это один из так называемых calling convention - ов. А конкретно - формат вызова функции - как оно будет выглядеть в машинных кодах. Существует несколько различных типов вызовов - stdcall, fastcall, ccall, cdecl. stdcall означаетб что все аргументы будут передаваться в функцию через стек. Возможно, у мелкомягких были свои причины зашить жестко тип вызова для callback функций - и дабы ты не дай бог не подпихнул ей fastcall функцию (где часть параметров передается через регистры) был сделан сей дефайн. Подробнее о типах вызовов можешь прочитать в MSDN или в нете.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог