主要功能中的“WINAPI”是什么意思?

时间:2010-02-27 18:21:52

标签: c++ c windows winapi winmain

您可以向我解释一下WINAPI函数中的WinMain()字吗?

以最简单的方式......

#include <windows.h>

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

它只是一些Windows时髦模式吗?

它做什么?或者更确切地说,我还没有遇到过这个C ++特性是什么?

4 个答案:

答案 0 :(得分:52)

WINAPI是一个评估为__stdcall的宏,这是一个特定于Microsoft的关键字,用于指定被调用者清理堆栈的调用约定。函数的调用者和被调用者需要就调用约定达成一致,以避免破坏堆栈。

答案 1 :(得分:7)

WINAPI是一个扩展为__stdcall的宏,这意味着被调用者清理堆栈。

答案 2 :(得分:7)

这是一个宏定义,旨在表示Windows调用约定。来自MSDN

  

名称的装饰方式取决于   关于语言和编译器如何   被指示发挥作用   可用,即通话   惯例。标准的进程间   调用Windows使用的约定   DLL称为WinAPI   惯例。它在Windows中定义   头文件为WINAPI,它位于   使用Win32定义转弯   声明者__stdcall。

答案 3 :(得分:2)

这是特定于Windows的。它指定调用约定。 WinMain被Windows调用,这可以确保调用者和被调用者就调用约定达成一致。