午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

動態(tài)鏈接庫 Windows的活動大陸

瀏覽:171日期:2023-05-23 17:46:25
在Windows世界中,有無數(shù)塊活動的大陸,它們都有一個共同的名字――動態(tài)鏈接庫?,F(xiàn)在就讓我們走進這些神奇的活動大陸,找出它們隱藏已久的秘密吧! 初窺門徑:Windows的基石 隨便打開一個系統(tǒng)目錄,一眼望去就能看到很多擴展名DLL的文件,這些就是經(jīng)常說的“動態(tài)鏈接庫”,DLL是Dynamic Link Library(即“動態(tài)鏈接庫”)的縮寫。從Microsoft公司推出首個版本的Windows以來,動態(tài)鏈接庫就一直是這個操作系統(tǒng)的基礎(chǔ)。 1.看看DLL里有什么 與其用晦澀的專業(yè)術(shù)語來解決DLL是什么,不如先來看看DLL里有什么。DLL和EXE文件一樣,其中包含的也是程序的二進制執(zhí)行代碼和程序所需的資源(比如圖標(biāo)、對話框、字符串等),可是為什么要把代碼放在DLL里面,而不是做成EXE呢?其實DLL中的代碼是以API函數(shù)形式出現(xiàn)的,通俗地說,DLL中包含的程序代碼都被做成了一個個小模塊,應(yīng)用程序通過按下所需DLL中特定的按鈕,來調(diào)用DLL中這個按鈕所代表的功能。在使用“記事本”等程序時,如果要保存文件或打開文件,就會彈出通用文件對話框,讓我們選擇文件位置。你可知道,這就是調(diào)用了系統(tǒng)底層DLL中的通用對話框界面。 2.系統(tǒng)中幾個重要的DLL Windows中有3個非常重要的底層DLL:Kernel32.dll、User32.dll、GDI32.dll。其中Kernel32.dll顧名思義就是內(nèi)核相關(guān)的功能,主要包含用于管理內(nèi)存、進程和線程的函數(shù);而User32.dll中包含的則是用于執(zhí)行用戶界面任務(wù)的函數(shù),比如把用戶的鼠標(biāo)點擊操作傳遞給窗口,以便窗口根據(jù)用戶的點擊來執(zhí)行預(yù)定的事件;GDI32.dll的名稱用了縮寫,全稱是Graphical Device Interface(圖形設(shè)備接口),包含用于畫圖和顯示文本的函數(shù),比如要顯示一個程序窗口,就調(diào)用了其中的函數(shù)來畫這個窗口。 3.為什么要用DLL 剛才在談到這個問題的時候,我們只是解釋了DLL將程序代碼封裝成函數(shù)的原理。為什么封裝成函數(shù),就能成為系統(tǒng)中大量使用DLL的理由呢? ①擴展應(yīng)用程序 由于DLL能被應(yīng)用程序動態(tài)載入內(nèi)存。所以,應(yīng)用程序可以在需要時才將DLL載入到內(nèi)存中,這讓程序的可維護性變得很高。比如QQ的視頻功能需要升級,那么負責(zé)編寫QQ的程序員不必將QQ所有代碼都重寫,只需將視頻功能相關(guān)的DLL文件重寫即可。 ②便于程序員合作 這個和我們最終用戶關(guān)系不大,僅供了解。我們都知道編程工具有很多,比如VB、VC、Delphi等,如果好幾個人合作來編寫一個大的程序,那么可能有的人用VB,有的人用VC,每人負責(zé)的部分所使用的編程語言都不同,究竟放在哪個編譯器中進行編譯呢?這就好比一群來自各個國家的人在共同編寫一篇文章,如果他們所使用的語言都不同,寫出來的文章怎么可能湊到一起呢?而有了DLL后,可以讓VC程序員寫一個DLL,然后VB程序員在程序中調(diào)用,無需為怎么將它們都編譯為一個單獨的EXE而發(fā)愁了。 ③節(jié)省內(nèi)存 如果多個應(yīng)用程序調(diào)用的是同一個動態(tài)鏈接庫,那么這個DLL文件不會被重復(fù)多次裝入內(nèi)存中,而是由這些應(yīng)用程序共享同一個已載入內(nèi)存的DLL。就好比一個辦公室中,很少會為每一個員工配置一臺飲水機的,而是在一個公共位置放上一個飲水機,所有需要喝水的職員都可以共用這臺飲水機,降低了成本又節(jié)約了空間。 ④共享程序資源 包括剛才提到過的通用文件對話框在內(nèi),DLL文件提供了應(yīng)用程序間共享資源的可能。資源可以是程序?qū)υ捒颉⒆址?、圖標(biāo),或者聲音文件等。 ⑤解決應(yīng)用程序本地化問題 在下載了某個程序的漢化包后,打開漢化說明,經(jīng)??梢钥吹接孟螺d包中的DLL文件覆蓋掉程序原來的DLL,漢化就完成了。這些程序都是將執(zhí)行代碼和應(yīng)用程序界面分開編寫了,所以漢化者只需簡單地將其中和程序界面相關(guān)的DLL漢化并發(fā)布即可。 求知若渴:探究DLL的真相 誰知道DLL里究竟有多少函數(shù),又有誰知道EXE調(diào)用了哪個DLL的哪些函數(shù)?其實,這個問題并不難解決。還記不記得本刊2004年第6期的《無間盜IV――盜亦有盜》中介紹的分析EXE文件的工具Dependency Walker(以下簡稱Depends,下載地址:http://www.newhua.com/cfan/200517/depends.zip)今天我們要用它當(dāng)探險工具,把DLL真相探個通通透透。
標(biāo)簽: Windows系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲免费 | 日韩大片免费 | 日本一区二区三区在线视频 | 亚洲最新偷拍 | 国产精品xxx| 日韩网站在线播放 | 中文在线中文资源 | 中文字幕精品视频在线观看 | 国产视频久久久久 | 亚洲免费网站 | 四虎影视一区二区 | 女18毛片| 97久久精品人人澡人人爽 | 国产精品久久久久久久久免费看 | 蜜桃永久免费 | 亚洲在线第一页 | 亚洲影院在线 | 久久在线免费视频 | av无限看 | 长河落日电视连续剧免费观看01 | 国产精品久久久久影院 | 不卡视频一区二区 | 亚洲自拍偷拍在线 | 欧美成人免费一级 | 国产真人真事毛片视频 | 亚洲成人黄色片 | 亚洲视频在线看 | 亚洲一区二区三区成人 | 色哟哟入口国产精品 | 久草视频在线免费看 | 人人爱人人 | 蜜桃91丨九色丨蝌蚪91桃色 | 一区二区视频网 | 日本一级黄色 | 高h文视频| 伊人热久久 | 91久久精品一区二区三 | 国产日韩欧美视频在线观看 | 免费岛国av | 亚洲久久视频 | 伊人伊人 |