青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

aurain
技術(shù)文摘
posts - 137,  comments - 268,  trackbacks - 0

5.進程:

1)在Win32系統(tǒng)中每一個進程都擁有4GB的地址空間。Win32進程什么也不執(zhí)行,它只是擁有4GB的地址空間來存放應用程序EXE文件所需要的代碼和數(shù)據(jù)。除地址空間外,進程還擁有文件、動態(tài)內(nèi)存、線程等資源。由線程負責執(zhí)行包含在進程地址空間里的代碼。每一個線程有它自己的CPU寄存器組和自己的棧。每一個進程至少有一個線程來執(zhí)行包含在地址空間中的代碼。如果地址空間中沒有線程在執(zhí)行代碼,那么系統(tǒng)就會釋放進程和它的地址空間。


(2)加載器:Win32支持兩類應用程序,控制臺應用程序CUI和圖形用戶界面應用程序GUIExe文件中的一個子系統(tǒng)值指出這個應用程序是控制臺應用程序還是圖形用戶界面應用程序。

(3)VC編寫的Win32控制臺應用程序都有一個main函數(shù),而圖形界面應用程序都有一個WinMain函數(shù)。

(4)C/C++的啟動函數(shù):_WinMainCRTStartup函數(shù)。它負責執(zhí)行:

1.得到一個新進程的全部命令行指針。

2.得到一個新進程的環(huán)境變量指針。

3.通過包含Stdlib.h來初始化能被應用程序訪問的C運行時全局變量。

4.初始化由C運行時內(nèi)存分配函數(shù)使用的堆和其它的低級輸入輸出例程。

5調(diào)用WinMain函數(shù)。

6.WinMain返回后,啟動代碼調(diào)用C運行時的exit函數(shù),傳給它WinMain的返回值。Exit函數(shù)執(zhí)行一些清理工作,然后調(diào)用Win32ExitProcess函數(shù),傳給它WinMain函數(shù)的返回值。

(5)實例句柄:每一個加載到進程地址空間的ExeDLL文件都有一個唯一的實例句柄。WinMain的第一個參數(shù)hinstExeExe文件的實例。在加載資源時所使用的函數(shù)要使用這個實例句柄。

(6)基本內(nèi)存地址:WinMain的參數(shù)hinstExe的實際值就是一個基本內(nèi)存地址。它指出系統(tǒng)是在什么地方把EXE文件的映象裝入進程的地址空間的。基本內(nèi)存地址由鏈接器決定。

(7)HANDLE GetModuleHandle(LPCTSTR lpszModule)函數(shù):返回的句柄是EXEDLL文件在地址空間里的基本地址。參數(shù)是ExeDLL文件的名字。該函數(shù)的兩個需要注意的地方:一、該函數(shù)只查看調(diào)用進程的地址空間。二、參數(shù)為NULL時返回的是EXE文件的基本內(nèi)存地址。

(8)Win32hinstExehmodExe是一個值。WinMain的參數(shù)hinstExePrev對于Win32無意義,它的值總為NULL。在Win32下,應用程序的每一個實例都必須注冊它自己窗口類,這是因為窗口類不能被同一應用程序中的所有實例共享。只有hinstExePrev值為NULL時,在Win32下應用程序的每一個實例才會注冊它自己的窗口類。

(9)進程的環(huán)境變量函數(shù):BOOL SetEnviromentVariable(LPCTSTR lpszName,LPCTSTR lpszValue);該函數(shù)把由lpszName標識的值設(shè)置為由lpszValue標識的值。如果指定的變量名已經(jīng)存在,就修改它的值。如果不存在,就增加該變量。如果lpszValue的值為NULL,變量就被從環(huán)境變量中刪除。

(10)進程的命令行

(11)進程的錯誤模式:當進程出現(xiàn)錯誤時, 它用來告訴系統(tǒng)應當以何種模式去處理該錯誤。使用的函數(shù)是:UINT SetErrorMode(UINT fuErrorMode);其中參數(shù)fuErrorMode是以下四個值的任意組合,它們是:SEM_FAILCRITICALERRORS(系統(tǒng)不顯示嚴重錯誤處理消息框,把錯誤返回調(diào)用的進程)SEM_NOGPFAULTERRORBOX(系統(tǒng)不顯示普通保護錯誤消息框。該標識只能被調(diào)試應用程序設(shè)置來用異常句柄自己處理普通保護錯誤GP)SEM_NOOPENFILEERRORBOX(系統(tǒng)在找不到文件時不顯示消息框)SEM_NOALIGNMENTFAULTEXCEPT(系統(tǒng)自動修復內(nèi)在排列錯誤,使它們對應用不可見。該標識對x86Alpha處理器無用)

注:缺省情況下子進程會繼承父進程的錯誤模式。但是父進程可以通過在調(diào)用CreateProcess時設(shè)置CREATE_DEFAULT_ERROR_MODE標識來防止子進程繼承。

 

(12)進程的當前驅(qū)動器和目錄:可以使用下列函數(shù)來得到和設(shè)置進程的當前驅(qū)動器和目錄:DWORD GetCurrentDirectory(DWORD cchCurDir,LPCTSTR lpszCurDir);

BOOL SetCurrentDirectory(LPCTSTR lpszCurDir);

(13)系統(tǒng)版本號:一般使用 BOOL GetVersionEx(LPOSVERSIONINFO lpVersionInformation);來得到系統(tǒng)版本號,其中參數(shù)lpVersionInformation是一個LPOSVERSIONINFO結(jié)構(gòu),該結(jié)構(gòu)的定義如下:

typedef struct{

DWORD dwOSVersionInfoSize;//在調(diào)用GetVersionEx函數(shù)前必須被設(shè)置為:SizeOf(OSVERSIONINFO);

DWORD dwMajorVersion;//系統(tǒng)主版本號

DWORD dwMinorVersion;//系統(tǒng)次版本號

DWORD dwBuildNumber;

DWORD dwPlatformID;//標識當前系統(tǒng)支持的平臺

TCHAR szCSDVersion[128];

}OSVERSIONINFO,*LPOSVERSIONINFO;

(14)CreateProcess函數(shù):應用程序調(diào)用CreateProcess函數(shù)來創(chuàng)建一個進程。

BOOL CreateProcess(

LPCTSTR lpszApplicationName,

LPCTSTR lpszCommandLine,

LPSECURITY_ATTRIBUTES lpsaProcess,

LPSECURITY_ATTRIBUTES lpsaThread,

BOOL fInheritHandles,

DWORD fdwCreate,

LPVOID lpvEnvironment,

LPTSTR lpszCurDir,

LPSTARTUPINFO lpsiStartInfo,

LPPROCESS_INFORMATION lppiProcInfo

);

當應用程序中某個線程調(diào)用這個函數(shù)時,系統(tǒng)創(chuàng)建了一個引用計數(shù)為1的進程內(nèi)核對象。該內(nèi)核對象不是進程,而是操作系統(tǒng)用來管理進程的一小塊數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)然后為新進程創(chuàng)建一個4GB的虛擬地址空間,把可執(zhí)行文件和DLL及數(shù)據(jù)都裝入該地址空間。系統(tǒng)之后為新進程的主線程創(chuàng)建一個使用計數(shù)為1的線程內(nèi)核對象,之后主線程開始執(zhí)行C運行時的啟動代碼,最終會調(diào)用WinMain函數(shù)。如果系統(tǒng)成功地創(chuàng)建了新進程和主線程,CreateProcess函數(shù)返回True

各個參數(shù)說明:

lpszCommandLine:該參數(shù)可以用來指定CreateProcess用來創(chuàng)建新進程的完整命令行,這個命令行里可以包含“可執(zhí)行文件名”(如果這個可執(zhí)行文件沒有指定擴展名的話,系統(tǒng)會認為其擴展名為exe)注:可以包含可執(zhí)行文件名+這個可執(zhí)行文件的完整路徑,如果未指定完整路徑,那么CreateProcess會以下面的順序查找可執(zhí)行文件:1.含有調(diào)用進程的Exe文件目錄2調(diào)用進程的當前目錄3 Windows系統(tǒng)目錄4Windows目錄5列在PATH環(huán)境變量中的目錄。如果系統(tǒng)找到了可執(zhí)行文件,就創(chuàng)建一個進程,把可執(zhí)行文件的代碼和DLL及數(shù)據(jù)裝入新進程的地址空間。系統(tǒng)然后調(diào)用C運行時的啟動例程。之后C運行時的啟動例程會查看進程的命令行,把可執(zhí)行文件名后的第一個參數(shù)地址傳遞為WinMainlpszCmdLine參數(shù)。上面講述的情況是在參數(shù)lpszApplicationNameNULL時。

lpszApplicationName:可執(zhí)行文件的名稱及其擴展名。如果不指定擴展名那么系統(tǒng)將不會認為其擴展名為exe。如果不指定可執(zhí)行文件的路徑,那么CreateProcess只在當前目錄下查找可執(zhí)行文件,如果找不到它將返回失敗。

下面列舉一例說明上面講的兩個參數(shù),CreateProcess(“C:WINNTSYSTEM32NOTEPAD.EXE”,”WORDPAD README.TXT”…..);

系統(tǒng)將啟動NotePad,但是NotePad的命令行是WORDPAD README.TXT這樣寫主要是為了支持Windows NTPOSIX子系統(tǒng)。

posted on 2010-05-21 14:23 閱讀(853) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發(fā)

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網(wǎng)絡(luò)開發(fā)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 502446
  • 排名 - 37

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美三级视频在线| 国产精品久久久久久久免费软件 | 国产精品免费小视频| 亚洲少妇一区| 在线中文字幕不卡| 国产免费成人| 卡一卡二国产精品| 男男成人高潮片免费网站| 99精品国产福利在线观看免费| 最新成人在线| 欧美香蕉视频| 久久久91精品国产一区二区精品| 久久激情网站| 亚洲精品一区二区三| 一区二区激情| 狠狠色综合播放一区二区| 欧美激情成人在线视频| 欧美日在线观看| 久久经典综合| 欧美国产综合视频| 欧美一区二区私人影院日本| 久久嫩草精品久久久精品| 亚洲精选一区二区| 亚洲男人的天堂在线观看| 狠狠色综合色区| 亚洲美女在线国产| 国产欧美精品一区| 亚洲国产精品久久精品怡红院| 欧美体内she精视频| 久久午夜精品一区二区| 欧美日韩另类丝袜其他| 久久蜜桃资源一区二区老牛 | 亚洲精品人人| 国产亚洲人成a一在线v站| 欧美电影打屁股sp| 国产麻豆日韩| 亚洲另类视频| 亚洲国产精品传媒在线观看| 亚洲视频在线二区| 亚洲国产一区视频| 欧美在线视频免费播放| 夜夜躁日日躁狠狠久久88av| 久久免费观看视频| 亚欧成人在线| 欧美日韩国产精品自在自线| 欧美成人免费在线视频| 国产乱码精品| 中国成人黄色视屏| 一本色道久久综合精品竹菊 | 久久精品女人| 篠田优中文在线播放第一区| 欧美黄色一区| 亚洲成色777777在线观看影院| 国产亚洲精品自拍| 亚洲欧美激情四射在线日| 一级成人国产| 欧美剧在线观看| 亚洲福利视频网站| 亚洲国产精品www| 久久久99爱| 久久综合国产精品台湾中文娱乐网| 国产精品日韩精品欧美在线| 9久re热视频在线精品| 99re在线精品| 欧美激情一区二区三区不卡| 亚洲第一精品夜夜躁人人躁| 亚洲国产美国国产综合一区二区| 久久久亚洲国产天美传媒修理工 | 久久这里有精品15一区二区三区| 国产欧美日韩综合一区在线播放 | 久久精品视频播放| 国产在线精品成人一区二区三区 | 欧美国产日本| 亚洲欧洲在线观看| 欧美韩日一区二区| 91久久国产综合久久蜜月精品| 亚洲免费精品| 欧美日韩综合一区| 亚洲一区二区黄| 欧美专区日韩视频| 韩国av一区| 另类欧美日韩国产在线| 亚洲高清在线观看| 亚洲午夜精品网| 国产精品综合不卡av| 欧美中文字幕精品| 欧美顶级大胆免费视频| 一区二区三区欧美激情| 国产精品久久久久久久久久久久 | 欧美日韩在线播放| 亚洲视频一区在线观看| 久久精品日产第一区二区| 在线免费精品视频| 欧美日韩免费网站| 亚洲资源在线观看| 欧美成人激情视频免费观看| 一本久道久久综合中文字幕| 国产精品日日做人人爱| 久久久www成人免费精品| 欧美激情bt| 亚洲欧美日韩精品久久亚洲区| 国内精品视频666| 欧美国产高清| 午夜精品久久久久久久99热浪潮| 欧美成人a∨高清免费观看| 99v久久综合狠狠综合久久| 国产精品一区二区三区免费观看| 久久久精品日韩| 在线亚洲美日韩| 免费成人在线观看视频| 亚洲欧美日韩精品久久| 亚洲经典视频在线观看| 国产精品青草综合久久久久99 | 久久国产精品网站| 亚洲精品日韩精品| 久久天堂成人| 亚洲欧美国产高清va在线播| 亚洲国产欧美一区二区三区同亚洲 | 欧美日韩在线电影| 久久亚洲午夜电影| 午夜精品一区二区三区电影天堂| 亚洲国产成人在线播放| 久久精品一区蜜桃臀影院| 亚洲视频一区二区| 亚洲清纯自拍| 在线精品在线| 国产一区二区三区四区老人| 欧美视频中文一区二区三区在线观看 | 一本久道久久综合婷婷鲸鱼| 女主播福利一区| 久久久精品免费视频| 午夜一区二区三区不卡视频| 亚洲激情第一区| 在线不卡亚洲| 国产一区91精品张津瑜| 国产精品一区二区久久| 欧美日韩综合久久| 欧美日韩hd| 欧美精品一区三区| 欧美α欧美αv大片| 六十路精品视频| 久久免费国产精品| 巨胸喷奶水www久久久免费动漫| 久久精品卡一| 久久久久久久久久久久久久一区| 欧美在线一二三区| 欧美亚洲日本国产| 久久成人在线| 久久久www成人免费毛片麻豆| 久久国产精品黑丝| 久久久久国产精品一区二区| 久久精品在线观看| 欧美国产激情二区三区| 正在播放亚洲| 一本色道久久综合狠狠躁篇怎么玩| 亚洲日本黄色| 亚洲视频电影在线| 亚洲午夜免费福利视频| 亚洲自拍偷拍一区| 欧美一区1区三区3区公司| 久久激情一区| 猛男gaygay欧美视频| 免费在线欧美视频| 亚洲欧洲另类国产综合| 一本大道久久a久久精二百| 亚洲一区二区三区四区中文| 香蕉久久a毛片| 久久亚洲国产成人| 欧美精品一区三区| 国产精品专区第二| 在线观看国产精品网站| 99视频一区| 久久黄金**| 欧美激情国产精品| 亚洲婷婷在线| 麻豆91精品91久久久的内涵| 欧美日韩国产黄| 国产一区二区三区在线观看精品 | 欧美日韩一区二区三区视频| 国产精品毛片| 亚洲福利电影| 先锋影音一区二区三区| 欧美电影免费观看网站| 一区二区高清在线观看| 久久久久国色av免费看影院| 欧美另类亚洲| 国产一区二区三区成人欧美日韩在线观看 | 欧美成人综合一区| 国产美女诱惑一区二区| 亚洲娇小video精品| 欧美一区二区三区电影在线观看| 免费在线观看成人av| 一区二区三区不卡视频在线观看| 久久久精品性| 国产精品久久久久久福利一牛影视 | 午夜精品一区二区在线观看| 女人香蕉久久**毛片精品| 国产欧美一级| 亚洲一区二区综合| 亚洲激情另类|