windows 上乙個 exe程式是如何執行的

2021-06-01 18:12:50 字數 463 閱讀 7772

1、shell(explorer.exe)呼叫createprocess 函式啟用exe 程式

2、系統建立乙個程序核心物件,引用計數置為1

3、系統為程序建立乙個4gb 的程序虛擬位址空間

的動態鏈結庫(dlls)

5、系統為程序建立乙個主線程,執行緒得到cpu 後,把cs:ip 指向.text 節中

的程式進入點(oep),此處是一條jmp 指令,它跳到***crtstartup

函式處執行

6、這裡完成c/c++執行期庫的一些初始化設定,包括c++建構函式的呼叫

全域性變數,靜態變數的初始化

7、呼叫winmain/main 函式,進入主函式

8、註冊視窗類,建立視窗,顯示視窗,更新視窗,進入訊息迴圈

9、視窗關閉,迴圈退出,返回到c/c++執行期庫

10、完成一些清理工作

11、最後是exitprocess 退出程序

windows上乙個小系統軟體

這幾個週末windows系統開發的總結 這兩個週末基本上都在幫乙個朋友做乙個windows平台的系統軟體,其實這個軟體需要的技術我原本不是很明白,但是通過google和msdn的幫助,也湊合著實現了一些功能。1 抓取指定的視窗 這個通過api函式列舉當前的頂層視窗,在 函式中判斷標題是不是自己感興趣...

Lintcode 上乙個排列

給定乙個整數陣列來表示排列,找出其上乙個排列。注意事項 排列中可能包含重複的整數 您在真實的面試中是否遇到過這個題?yes 樣例給出排列 1,3,2,3 其上乙個排列是 1,2,3,3 給出排列 1,2,3,4 其上乙個排列是 4,3,2,1 標籤 排列 思路 逆序找到第乙個不是遞減的數字置為i,從...

Lintcode 上乙個排列

給定乙個整數陣列來表示排列,找出其上乙個排列。樣例 給出排列 1,3,2,3 其上乙個排列是 1,2,3,3 給出排列 1,2,3,4 其上乙個排列是 4,3,2,1 解釋 所謂的上乙個排列其實就是把給定數字組合,並從大到小排列,找到與給定排列最接近,且比它小的排列 即其上乙個排列 比如 1,3,2...