Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

описание директивы Stdcall [D6, XP]


Полный Чайник ©   (2007-06-23 17:42:00) 

Обьясните мне пожалуйста, зачем нужна директива stdcall?


Инс   (2007-06-23 17:54:00) [1]

Это одна из директив, указывающая правила передачи параметров в подпрограмму. Дело в том, что в различных языках программирования используются разные механизмы передачи. В Delphi по умолчанию используется модель вызова register, которая сводится к тому, что параметры в подпрограмму по возможности передаются через регистры. В C++ принята другая модель - параметры передаются через стек от последнего к первому. Эта модель называется stdcall. Функции Windows расчитаны на вызов именно по этой модели. Поэтому, чтобы при вызове API в нее правильно передались параметры, необходимо указать соответствующую директиву.


Dib@zol   (2007-06-23 17:51:00) [2]

Чтобы можно было создавать проекты, одни модули к-рых написаны скажем на Асме, вторые на Дельфях, третьи на JAVA, четвёртые на Вижуальном Барсике (бррррр) итд. Директива stdcall обеспечивает правильную передачу параметров функций при их вызове из ДЛЛ.

Уф. Помоему так.


Наверх

Титульная страница Поиск, карта сайта Написать письмо