关于签名:int WINAPI WinMain(HINSTANCE p1,HINSTANCE p2,LPSTR p3,int p4)

时间:2010-05-02 11:26:41

标签: c winapi

为什么WinMain有两种返回类型?

如果我删除它,会报告此警告:

warning C4007: 'WinMain' : must be '__stdcall'

或者我错误地读了WINAPI

更新

我尝试了这两个变体,据说与WINAPI相同,没有工作:

int __declspec WinMain

int __declspec(stdcall) WinMain 

2 个答案:

答案 0 :(得分:6)

WINAPI不是返回类型,它是扩展为函数的特定于实现的装饰或属性的宏。在这个例子中,它指定了调用约定,相当于__stdcall

在语法上,WINAPI大致(但不完全)等同于static等存储类说明符。

答案 1 :(得分:2)

WINAPI不是第二个返回值,而是__stdcall#define

__ stdcall是一个调用约定,它处理如何为函数提供参数。