今天準備開始看《Windows 程式設計》一書。堅持記錄下每次看書的心得體會!相信肯定能從中獲得很多收穫!
1、API和SDK區別;SDK = API函數 + 協助文檔 + 微軟提供的一些輔助開發工具;
2、使用api函數方法:①包含要調用函數的標頭檔;
②串連到指定的連結庫(lib檔案),顯式:#pragma comment(lib, "mylib.lib");
③api函數前面加::表示和c++類成員函數區別;
3、匈牙利命名法:要記住常用類型的縮寫首碼;先寫範圍,然後是_,然後是類型首碼,然後是有意義的標示符;
一次性局部變數用小寫(i,j等);全域變數全部大寫;
?4、P9,每個進程都有自己的4GB的私人地址空間;
5、核心對象:只有通過api函數才可以訪問;
6、一個控制台程式入口函數是main()函數,其實在進入main函數之前,作業系統先去調用c++的運行期啟動函數,其函數會初始化c++運行期庫。以保證程式中可以調用malloc和new之類的函數以及保證在執行使用者的代碼之前搜有全域的或靜態c++對象能夠被正確的建立(執行這些對象的建構函式);
7、win32的啟動過程:應用程式的啟動過程就是進程的建立過程,通過調用CreateProcess函數建立一個主進程,並且建立一個進程核心對象,初始化為1,然後系統會為該進程建立一個虛擬空間,載入應用程式執行所需要的資料和代碼。然後系統建立一個主線程,主線程通過執行c++運行期啟動代碼開始運行,c++運行期代碼再調用main函數開始執行。建立新的進程的時候,系統會為新進程指定一個STARTUPINFO類型的變數,該變數包含了父進程傳遞給子進程的一些顯示資訊。
8、windows執行程式的時候,尋找函數順序:調用進程的可執行檔所在目錄——調用進程的目前的目錄——windows的系統目錄(system32目錄)——window目錄——path環境變數目錄!
9、mfc的執行順序:對象theApp而調用父類和自身的建構函式——調用winmain函數*(如何調用呢?是通過runtime函數主動調用該函數!就像c++控制台程式那樣,main函數無需聲明以及定義便可以直接調用,這便是得益於runtime函數!)——winmain函數裡面初始化主程式的一些東西(wininit-initapplication-initinstance)——run函數(訊息迴圈)!