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

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

5.進(jìn)程:

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


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

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

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

1.得到一個新進(jìn)程的全部命令行指針。

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

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

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

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

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

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

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

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

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

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

(10)進(jìn)程的命令行

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

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

 

(12)進(jìn)程的當(dāng)前驅(qū)動器和目錄:可以使用下列函數(shù)來得到和設(shè)置進(jìn)程的當(dāng)前驅(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;//標(biāo)識當(dāng)前系統(tǒng)支持的平臺

TCHAR szCSDVersion[128];

}OSVERSIONINFO,*LPOSVERSIONINFO;

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

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

);

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

各個參數(shù)說明:

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

lpszApplicationName:可執(zhí)行文件的名稱及其擴(kuò)展名。如果不指定擴(kuò)展名那么系統(tǒng)將不會認(rèn)為其擴(kuò)展名為exe。如果不指定可執(zhí)行文件的路徑,那么CreateProcess只在當(dāng)前目錄下查找可執(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 閱讀(852) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發(fā)

<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

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

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 501927
  • 排名 - 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>
            欧美一进一出视频| 国产精品亚洲一区| 日韩亚洲精品视频| 亚洲激情偷拍| 美女国产一区| 欧美黑人国产人伦爽爽爽| 欧美二区不卡| 亚洲精品网址在线观看| 在线午夜精品自拍| 亚洲欧美在线另类| 久久精品人人做人人爽电影蜜月| 久久精品一区二区三区不卡| 久久久精品欧美丰满| 久久精品国产清自在天天线| 免费观看成人www动漫视频| 最新亚洲一区| 影音先锋欧美精品| 日韩视频在线观看| 午夜精彩国产免费不卡不顿大片| 欧美专区18| 最新中文字幕一区二区三区| 一区二区三区免费网站| 午夜欧美精品久久久久久久| 久久综合网hezyo| 国产精品videossex久久发布| 国产一区二区久久精品| 在线精品一区| 欧美一区二区三区精品电影| 免费在线亚洲欧美| 99riav1国产精品视频| 久久精品欧美| 欧美三级小说| 亚洲国产欧美不卡在线观看 | 久久国产99| 欧美精品电影| 韩国av一区二区三区| av成人激情| 欧美一区二区三区在线视频| 亚洲大胆av| 欧美专区亚洲专区| 国产精品扒开腿爽爽爽视频 | 午夜欧美精品久久久久久久| 久久久爽爽爽美女图片| 亚洲国产一区二区三区青草影视| 在线综合+亚洲+欧美中文字幕| 一本色道久久加勒比精品| 免费h精品视频在线播放| 一区二区三区偷拍| 欧美日韩二区三区| 亚洲国产精品免费| 美女91精品| 亚洲专区欧美专区| 欧美亚男人的天堂| 亚洲精品系列| 亚洲国产日韩精品| 欧美资源在线| 国产综合自拍| 欧美在线视频免费播放| 妖精成人www高清在线观看| 欧美亚洲三区| av成人福利| 免费在线国产精品| 亚洲高清不卡在线| 欧美二区视频| 欧美 日韩 国产精品免费观看| 红桃视频一区| 久久久久一区| 久久精品国产清自在天天线| 在线观看日韩一区| 欧美风情在线| 欧美日韩黄色大片| 香蕉成人伊视频在线观看| 亚洲一级黄色片| 国产一区二区精品久久91| 久久综合给合久久狠狠色| 久久综合精品国产一区二区三区| 亚洲国产精品久久久久久女王 | 亚洲第一级黄色片| 欧美大片国产精品| 在线午夜精品自拍| 午夜一区二区三区在线观看| 狠狠色丁香久久婷婷综合丁香| 男同欧美伦乱| 欧美日韩精品系列| 亚洲免费视频观看| 久久久久一区二区| 亚洲乱码国产乱码精品精天堂| 9l视频自拍蝌蚪9l视频成人| 一区二区不卡在线视频 午夜欧美不卡'| 欧美乱人伦中文字幕在线| 亚洲在线视频网站| 久久久久国产精品一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美午夜电影在线| 国产精品va在线播放| 一区二区欧美精品| 日韩视频一区二区三区| 国产精品女同互慰在线看| 久久激情视频久久| 亚洲欧美一区在线| 久久精品国产免费| 亚洲欧美国产三级| 久久综合狠狠综合久久激情| 久久精品视频在线免费观看| 欧美精品在线观看91| 日韩亚洲视频| 国内精品福利| 欧美国产欧美综合| 国产精品久久看| 免费日韩视频| 国产精品免费看| 久久欧美肥婆一二区| 日韩一区二区精品视频| 欧美专区福利在线| 一区二区三区免费网站| 久久久久久**毛片大全| 亚洲一区二区三区高清不卡| 久久久99爱| 欧美一级淫片aaaaaaa视频| 免费在线看成人av| 亚洲国产影院| 欧美在线不卡视频| 欧美激情一区二区三区高清视频| 午夜免费日韩视频| 久久先锋影音| 欧美在线啊v一区| 欧美视频在线视频| 91久久久精品| 亚洲黄色成人久久久| 欧美一区三区二区在线观看| 亚洲免费在线播放| 欧美日韩国语| 99热精品在线观看| 亚洲视频欧美在线| 欧美日韩国产精品一区| 亚洲日本视频| av成人免费在线| 欧美片在线播放| 日韩一区二区精品视频| 一区二区高清视频| 欧美三级在线| 亚洲免费在线看| 久久精品一区四区| 国精品一区二区三区| 久久久xxx| 欧美成人国产一区二区| 亚洲日本欧美| 欧美日韩午夜在线| 国产日韩欧美| 久久gogo国模裸体人体| 免费成人av| 99精品视频免费观看视频| 国产一区二区三区四区老人| 国产在线视频欧美一区二区三区| 在线亚洲免费视频| 欧美一级电影久久| 欧美日韩亚洲在线| 宅男精品视频| 欧美一级午夜免费电影| 国内精品久久久久影院色 | 久久福利精品| 狠狠色丁香婷婷综合影院 | 国产精品久久久久永久免费观看| 亚洲另类自拍| 久久高清国产| 一区免费观看| 欧美日韩免费一区二区三区视频 | 亚洲电影第1页| 欧美—级a级欧美特级ar全黄| 一区二区毛片| 美国三级日本三级久久99| 日韩视频永久免费| 国产欧美日韩不卡| 欧美成人免费观看| 午夜性色一区二区三区免费视频| 国产一区在线播放| 欧美激情久久久久久| 亚洲人成人99网站| 欧美成人亚洲成人| 国产精品三上| 亚洲精品一区二区三区婷婷月| 日韩视频在线一区二区三区| 国产精品久久久久久久久久免费看| 欧美一区二区在线看| 欧美va天堂va视频va在线| 在线中文字幕一区| 在线电影院国产精品| 欧美午夜www高清视频| 欧美在线播放| 亚洲毛片在线看| 老司机aⅴ在线精品导航| 亚洲一区观看| 最新日韩在线视频| 在线观看av不卡| 国产乱码精品一区二区三区av| 欧美一区二区大片| 亚洲人成网站影音先锋播放| 好吊色欧美一区二区三区视频| 国产精品黄视频| 欧美精品一区二区视频|