58

你能解释一下函数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

4 回答 4

64

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

于 2010-02-27T18:25:09.857 回答
9

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

于 2010-02-27T18:25:50.830 回答
8

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

名称的修饰方式取决于语言以及编译器如何被指示使函数可用,即调用约定。DLL 使用的 Windows 的标准进程间调用约定称为 WinAPI 约定。它在 Windows 头文件中定义为 WINAPI,而后者又使用 Win32 声明符 __stdcall 定义。

于 2010-02-27T18:26:58.673 回答
2

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

于 2010-02-27T18:27:05.173 回答