O que significa "Winapi" na função principal?
Pergunta
Você poderia me explicar o WINAPI
palavra no WinMain()
função?
Da maneira mais simples ..
#include <windows.h>
int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}
É apenas um modo Windows Funky?
O que isso faz? Ou melhor, qual é esse recurso C ++ que ainda não encontrei?
Solução
WINAPI
é uma macro que avalia __stdcall
, uma palavra-chave específica da Microsoft que especifica uma convenção de chamada em que o Callee limpa a pilha. O chamador e a Callee da função precisam concordar em uma convenção de chamada para evitar corromper a pilha.
Outras dicas
Esta é uma definição de macro destinada a denotar a convenção de chamada do Windows. A partir de Msdn:
A maneira como o nome é decorado depende do idioma e de como o compilador é instruído a disponibilizar a função, ou seja, a convenção de chamada. A convenção de chamada entre processos padrão para Windows usada pelo DLLS é conhecida como Convenção Winapi. Ele é definido nos arquivos do cabeçalho do Windows como WinApi, que por sua vez é definido usando o Declarador Win32 __STDCall.
Winapi é uma macro que se expande para __stdcall o que significa que o callee limpa a pilha.
É específico do Windows. Especifica a convenção de chamada. Winmain é chamado pelo Windows, e isso garante que o chamador e o Callee concordem com a convenção de chamada.