在windows os下,資源管理器就如同linux下的shell,它是包圍在作業系統核心周圍的乙個應用程式。其實在linux系統下的gui,也是通過呼叫shell命令來實現其基本功能的,只不過是在shell上面又包裝了一件「華麗的外衣」,讓使用者操作起來更加方便而已了。
資源管理器作為使用者和作業系統之間的乙個中介,大大方便了使用者的操作,使用者在圖形介面下在資源管理器中進行操作,然後資源管理器向作業系統核心傳送相關的訊息來完成操作。
當使用者執行乙個c/c++的exe程式時,使用者雙擊該exe檔案,資源管理器接受到該操作的訊息以後,根據字尾為exe就可以判斷你是想執行該程式,於是就呼叫載入器,將exe檔案中的二進位制檔案載入到記憶體中。 然後呼叫c startup code, 對於c的可執行程式來說,c startup code就是main函式( int main (int argc, char *argv)), 對c++類的可執行程式來說,其c startup code是在鏈結階段由鏈結器加入到了exe的特定部分,我們在**裡面是看不到的了,所以對於c++ 的可執行程式來說,是由作業系統呼叫其鏈結器加入的那個c startup code,然後在c startup code中呼叫c++的入口函式winmain來開始執行程式的,winmain的四個引數是由os傳遞進來的。
windows程式執行原理
1.寫乙個hello world程式 引數說明 hinstance hinstance 程式可執行模組的控制代碼 記憶體中的.exe檔案 hinstance hprevinstance 在win32程式中總是為null.lpstr lpcmdline 命令列引數組成的乙個單字串 不包括程式名字 in...
Windows 程式內部執行原理
2.應用程式 作業系統 計算機裝置硬體互動 windows程式設計完全是基於訊息的事件驅動模式 使用者需要完成某種功能,會呼叫os 某種支援,os將使用者的需要包裝成訊息,投遞到應用程式訊息對列中,應用程式從訊息對列取走訊息,做出響應 os感知裝置的變化 如滑鼠移動,鍵盤按下,並知道具體資訊 表示o...
學習筆記 windows程式執行原理
作業系統將每個事件都包裝成乙個稱為訊息的結構體msg來傳遞給應用程式,msg結構定義如下 typedef struct tagmsg msg 關於控制代碼 控制代碼 handle 資源的標識。作業系統要管理和操作這些資源,都是通過控制代碼來找到對應的資源。按資源的型別,又可將控制代碼細分成圖示控制代...