Reputation: 3207
Could you please explain to me the WINAPI
word in the WinMain()
function?
In the simplest way..
#include <windows.h>
int -->WINAPI<-- WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}
Is it just some Windows funky mode?
What does it do? Or rather what is this C++ feature I haven't encountered yet?
Upvotes: 68
Views: 53793
Reputation: 347586
WINAPI is a macro that expands to __stdcall which means that the callee cleans the stack.
Upvotes: 10
Reputation: 490713
It's Windows-specific. It specifies the calling convention. WinMain gets called by Windows, and this ensures that the caller and callee agree on the calling convention.
Upvotes: 3
Reputation: 24177
This is a macro definition intended to denote the Windows calling convention. From MSDN:
The way the name is decorated depends on the language and how the compiler is instructed to make the function available, that is, the calling convention. The standard inter-process calling convention for Windows used by DLLs is known as the WinAPI convention. It is defined in Windows header files as WINAPI, which is in turn defined using the Win32 declarator __stdcall.
Upvotes: 10