web-dev-qa-db-fra.com

Que signifie "WINAPI" dans la fonction principale?

Pourriez-vous s'il vous plaît m'expliquer le mot WINAPI dans la fonction WinMain()?

De la manière la plus simple ..

#include <windows.h>

int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
    return 0;
}

Est-ce juste un mode funky de Windows?

Qu'est ce que ça fait? Ou plutôt quelle est cette fonctionnalité C++ que je n'ai pas encore rencontrée?

50
Pyjong

WINAPI est une macro qui prend la valeur __stdcall , un mot clé spécifique à Microsoft qui spécifie une convention d'appel où l'appelé nettoie la pile. L'appelant et l'appelé de la fonction doivent se mettre d'accord sur une convention d'appel pour éviter de corrompre la pile.

55
bk1e

WINAPI est une macro qui se développe en __ stdcall ce qui signifie que l'appelé nettoie la pile.

7
Brian R. Bondy

Il s'agit d'une définition de macro destinée à désigner la convention d'appel Windows. De MSDN :

La façon dont le nom est décoré dépend de la langue et de la façon dont le compilateur est chargé de rendre la fonction disponible, c'est-à-dire la convention d'appel. La convention d'appel inter-processus standard pour Windows utilisée par les DLL est connue sous le nom de convention WinAPI. Il est défini dans les fichiers d'en-tête Windows sous le nom de WINAPI, qui est à son tour défini à l'aide du déclarateur Win32 __stdcall.

7
bobbymcr

C'est spécifique à Windows. Il spécifie la convention d'appel. WinMain est appelé par Windows, ce qui garantit que l'appelant et l'appelé sont d'accord sur la convention d'appel.

2
Jerry Coffin