爲什麼WinMain
有兩種返回類型?關於簽名:int WINAPI WinMain(HINSTANCE p1,HINSTANCE p2,LPSTR p3,int p4)
如果我刪除它,將報告這樣的警告:
warning C4007: 'WinMain' : must be '__stdcall'
或者我在讀INT WINAPI
錯?
UPDATE
我想這兩個變體被認爲是同WINAPI
,無工作:
int __declspec WinMain
int __declspec(stdcall) WinMain
但是'__declspec(stdcall)'是什麼意思呢?常規形式應該是:'[return type] function_name(parameters)',對吧? – user198729 2010-05-02 11:31:24
@ user198729:http://en.wikipedia.org/wiki/Calling_convention。是的,通常它應該是'returnType func(parameters)',但'__declspec'是微軟的擴展。 – jamesdlin 2010-05-02 11:33:14
@ user198729:這是函數聲明的最簡單形式。該函數也可以聲明爲'static'或'inline',它影響函數聲明的含義,但不影響返回類型。 'WINAPI'是一個特定於窗口的擴展,它指定調用約定,但不會改變函數聲明的含義。 – 2010-05-02 11:37:22