windows核心程式設計 程序初步

2021-07-12 06:28:50 字數 1732 閱讀 5799

程序

什麼是程序,系統如何建立乙個核心物件來管理程序。

如何通過程序核心物件來操作乙個程序。

程序的屬性,以及查詢和修改程序屬性的函式。

程序的結束。

乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。

程序是死的,程序必須有乙個執行緒!!

primary thread

!!如果程序內所有執行緒退出,那麼程序自動銷毀! 呼叫

exitprocess

函式,也可以結束程序。

第乙個windows

程式cui

和gui。

我們所編寫的

windows

程式中,真正第乙個被執行的函式是:

影象介面的入口函式是:

_twinmain

,控制台程式的入口函式是

_tmain

winmaincrtstartup//gui_ascii

字元型別的

c執行時庫中的入口函式

wwinmaincrtstartup// gui_unicode

字元型別的

c執行時庫中的入口函式

maincrtstartup// cui_ascii

字元型別的

c執行時庫中的入口函式

wmaincrtstartup// cui_unicode

字元型別的

c執行時庫中的入口函式 這些

c執行時庫函式,主要完成以下任務:

獲取程序命令列指標;

獲取程序環境變數指標;

初始化c/c++

執行時庫的全域性變數,如果你包含了頭

stdlib.h

,那麼你就可以訪問這些變數!

//errno

這就是乙個全域性變數。

_enrion

這是環境變數指標

初始化malloc

函式的記憶體堆;

為c++

全域性類,呼叫建構函式。

malloc

函式,不要輕易使用?因為這個函式一般來說,最終會呼叫

windows api

函式,我們直接呼叫

virtualalloc windowsapi

函式,效率會高!

kenerl

呼叫***crtstartup

函式;

***crtstartup

函式呼叫

main

函式;

main

函式退出;

exit

函式被呼叫(真正呼叫的是

crt0dat.c

中的)

static void __cdecldoexit (

intcode,

intquick,

intretcaller

)這個函式主要做以下事情:

呼叫_onexit

函式註冊的所有函式;

呼叫c++

銷毀函式銷毀所有的全域性和靜態類物件;

如果_crtdbg_leak_check_df

標誌被設定,那麼呼叫

crtdumpmemoryleaks

函式,列出洩露記憶體。

呼叫exitprocess

函式,系統殺死當前程序!

獲取當前作業系統版本資訊:

getversion函式

dwordwinapi getversion(void);

void

main()

windows核心程式設計 程序

程序定義成乙個正在執行的程式的例項,包含兩個部分 1 乙個核心物件,作業系統用它來管理程序。核心物件也是系統儲存程序統計資訊的地方。2 乙個位址空間,其中包含所有可執行 exe檔案 或dll模組的 和資料。此外,還包括動態記憶體分配,比如執行緒堆疊和堆的分配。windows支援兩種型別的應用程式 g...

windows 核心程式設計 筆記之 程序

內容 windows程序 process 如上圖所示,windows任務管理器中的程序tab列中列出了系統管理的所有程序,我們經常利用任務管理器來結束某個沒有得到響應的應用程式,但是,作為乙個windows程式設計師,我們應該有這樣的疑問 程序是什麼東西?系統為什麼會存在程序?程序有哪些屬性?程序是...

Windows核心程式設計 (二)程序

一,一般將程序定義成乙個正在執行的程式的乙個例項,有以下兩部分構成 1 乙個核心物件,作業系統用它來管理程序。2 乙個位址空間,其中包含所有可執行檔案或dll模組的 和資料,還包含動態記憶體分配,比如執行緒堆疊和堆的分配 二,程序是有惰性的。程序要做任何事情,都必須讓乙個執行緒在它的上下文中執行。該...