winmain如何回归两个价值观'?

时间:2014-03-27 21:10:02

标签: c++ winapi

我想开始学习windows api,所以我查看了一些教程,并立即注意到main函数似乎返回了多个值。

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);

这一切意味着什么?不应该是int WinMainWINAPI WinMain,而不是两者都是吗?

2 个答案:

答案 0 :(得分:5)

WINAPI是一个扩展为__stdcall的宏。它指定调用约定,而不是返回类型。返回类型仍为“int”

答案 1 :(得分:0)

为了让C ++编译器有效地定位Windows,对标准C ++进行了一些扩展。

其中一个是WINAPI,它在Win32中扩展为__stdcall。这是一个非标准的编译器指令,它告诉编译器从左到右传递参数(为了与VBA兼容等)。从技术上讲,它被称为调用约定

因此它与返回类型无关,因此您仍需要编写显式返回类型。

(请注意,在Win64中,Microsoft完全免除了__stdcall,因此将WINAPI定义为空白。)