int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
);
WinMain函式宣告為返回一個int值。WINAPI標識符在WINDEF.H定義,語句如下:
#define WINAPI __stdcall
該語句指定了一個呼叫約定,包括如何生產機械碼以在堆棧中放置函數呼叫的參數。許多Windows函數呼叫聲明為WINAPI。
hInstance WinMain的第一個參數被稱作「執行實體控制代碼」。在Windows程式設計中,控制代碼僅是一個應用程式用來識別某些東西的數字。在這種情況下,該控制代碼唯一地標識該程式,還需要它在其它Windows函數呼叫中作為參數。在Windows的早期版本中,當同時運行同一程式多次時,您便建立了該程式的「多個執行實體(multiple instances)」。同一應用程式的所有執行實體共用程式和唯讀記憶體(通常是例如菜單和對話方塊模板的資源)。程式通過檢查hPrevInstance參數就能夠確定自身的其它執行實體是否正在運行。然後它可以略過一些繁雜的工作並從前面的執行實體將某些資料移到自己的資料區域。
在32位Windows版本中,該概念已被拋棄。傳給WinMain的第二個參數總是NULL(定義為0)。
lpCmdLine WinMain的第三個參數是用於執行程式的命令列。某些Windows應用程式利用它在程式啟動時將檔案載入記憶體。
第一天現就抄寫這麼多吧,希望以後能堅持下去,把這本書好好看完
原始碼附上:
/*--------------------------------------------------------------<br /> HelloMsg.c -- Displays "Hello, Windows 98!" in a message box<br /> (c) Charles Petzold, 1998<br /> --------------------------------------------------------------*/</p><p>#include <windows.h></p><p>int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,<br /> PSTR szCmdLine, int iCmdShow)<br />{<br /> MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ;</p><p> return 0 ;<br />}<br />
nShowCmd WinMain的第四個參數指出程式最初顯示的方式,可以是正常的或者是最大化地充滿整個畫面,或者是最小化顯示在工作列中。