Я прочитал статью о Calling convention
(__stdcall, __fastcall, паскаль, Cdecl и т.д ...)Что лучше объявить для вызова соглашения о программе Windows?
И мне интересно: Почему часто __stdcall (WinAPI) объявлен для функции WinMain()?
Как я читал, __stdcall
работает со стеком, __fastcall
работает с регистрами и вообще не использует стек.
Итак, я попытался объявить WinMain() с __fastcall
. Компилятор (Visual C++) дал мне ошибку.
error C2373: 'WinMain' : redefinition; different type modifiers
c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(2560) : see declaration of 'WinMain'
Почему я не могу использовать __fastcall
для WinMain(), и есть ли возможность использовать его для этого?
Потому что работать с регистрами без использования стека намного быстрее, не так ли?
PS Мое предложение состоит в том, что есть некоторые договоры, запрещающие мне использовать __fastcall
, но это только мое предложение.