Estou estudando c++ e surgiu uma dúvida, eu recentemente tenho me deparado muito com uma palavra chave chamada __stdcall e não entendo qual a finalidade dela. Pelo que andei lendo por ae, vi que essa palavra funciona como uma diretiva para o processador tratar as variáveis que estão sendo passadas por uma função de forma diferente na PILHA (memória), mas diferente como?
Exemplo: VARRETORNO __stdcall nomeFunction(int var1, int var2, int *var3);
Então simplificando, qual a diferença de usar o __stdcall e não usar? Quanto mais detalhes melhor.
Pelo que eu entendi, algumas API’s, bibliotecas de DLL e outras coisas “simplesmente necessitam” de alguma ordem na hora de passar os parâmetros para o stack, mas na verdade, do ponto de vista do programador, se não importar a forma que o parâmetro vai para o stack, tanto faz se eu usar o __stdcall, __fastcall, __pascal ou __cdecl… Vou parar de esquentar a cabeça com isso… Já respondi minha dúvida.
eu entendi. estava com sono tb quando expliquei. foi interessante pq eu sempre tive essa duvida e achava que a forma de invocar uma subrotina era a mesma sempre.