程序
什麼是程序,系統如何建立乙個核心物件來管理程序。
如何通過程序核心物件來操作乙個程序。
程序的屬性,以及查詢和修改程序屬性的函式。
程序的結束。
乙個程序,就是乙個正在執行的程式!乙個程式,可以產生多個程序。
程序是死的,程序必須有乙個執行緒!!
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模組的 和資料,還包含動態記憶體分配,比如執行緒堆疊和堆的分配 二,程序是有惰性的。程序要做任何事情,都必須讓乙個執行緒在它的上下文中執行。該...