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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top