DLL檔案:意義,作用,常見種類,特點,連結方法,故障排除,檔案修復,

DLL檔案:意義,作用,常見種類,特點,連結方法,故障排除,檔案修復,

DLL檔案

DLL(Dynamic Link Library)檔案為動態程式庫檔案,又稱“應用程式拓展”,是軟體檔案類型。在Windows中,許多應用程式並不是一個完整的執行檔,它們被分割成一些相對獨立的動態程式庫,即DLL檔案,放置於系統中。當我們執行某一個程式時,相應的DLL檔案就會被調用。一個應用程式可使用多個DLL檔案,一個DLL檔案也可能被不同的應用程式使用,這樣的DLL檔案被稱為共享DLL檔案。

基本介紹

中文名:動態程式庫外文名:Dynamic Link Library簡稱:DLL屬性:軟體檔案類型套用平台:Windows

意義,作用,常見種類,特點,連結方法,故障排除,檔案修復,

意義DLL檔案中存放的是各類程式的函式(子過程)實現過程,當程式需要調用函式時需要先載入DLL,然後取得函式的地址,最後進行調用。使用DLL檔案的好處是程式不需要在運行之初載入所有代碼,只有在程式需要某個函式的時候才從DLL中取出。另外,使用DLL檔案還可以減小程式的體積。作用在 Windows作業系統中,每個程式都可以使用該 DLL 中包含的功能來實現“打開”對話框。這有助於促進代碼重用和記憶體的有效使用。通過使用 DLL,程式可以實現模組化,由相對獨立的組件組成。例如,一個記賬程式可以按模組來銷售。可以在運行時將各個模組載入到主程式中(如果安裝了相應模組)。因為模組是彼此獨立的,所以程式的載入速度更快,而且模組只在相應的功能被請求時才載入。此外,可以更為容易地將更新套用於各個模組,而不會影響該程式的其他部分。例如,您可能具有一個工資計算程式,而稅率每年都會更改。當這些更改被隔離到 DLL 中以後,您無需重新生成或安裝整個程式就可以套用更新。常見種類Windows作業系統中的一些作為 DLL 實現的檔案·ActiveX 控制項 (.ocx) 檔案ActiveX控制項的一個示例是日曆控制項,它使您可以從日曆中選擇日期。·控制臺 (.cpl) 檔案.cpl 檔案的一個示例是位於控制臺中的項。每個項都是一個專用 DLL。·設備驅動程式(.drv) 檔案設備驅動程式的一個示例是控制列印到印表機的印表機驅動程式。特點一、 使用較少的資源當多個程式使用同一個函式館時,DLL 可以減少在磁碟和物理記憶體中載入的代碼的重複量。這不僅可以大大影響在前台運行的程式,而且可以大大影響其他在 Windows作業系統上運行的程式。二、 推廣模組式體系結構DLL 有助於促進模組式程式的開發。這可以幫助您開發要求提供多個語言版本的大型程式或要求具有模組式體系結構的程式。模組式程式的一個示例是具有多個可以在運行時動態載入的模組的計帳程式。三、 簡化部署和安裝當 DLL 中的函式需要更新或修復時,部署和安裝 DLL 不要求重新建立程式與該 DLL 的連結。此外,如果多個程式使用同一個 DLL,那么多個程式都將從該更新或修復中獲益。當您使用定期更新或修復的第三方 DLL 時,此問題可能會更頻繁地出現。1、如何了解某應用程式使用哪些DLL檔案右鍵單擊該應用程式並選擇快捷選單中的“快速查看”命令,在隨後出現的“快速查看”視窗的“引入表”一欄中你將看到其使用DLL檔案的情況。2、如何知道DLL檔案被幾個程式使用運行Regedit,進入HKEY_LOCAL_MACHINE\Software\Microsrft\Windows\CurrentVersion\SharedDlls子鍵查看,其右邊視窗中就顯示了所有DLL檔案及其相關數據,其中數據右邊小括弧內的數字就說明了被幾個程式使用,(2)表示被兩個程式使用,(0)則表示無程式使用,可以將其刪除。3、如何解決DLL檔案丟失的情況有時在卸載檔案時會提醒你刪除某個DLL檔案可能會影響其他應用程式的運行。所以當你卸載軟體時,就有可能誤刪共享的DLL檔案。一旦出現了丟失DLL檔案的情況,如果你能確定其名稱,可以在Sysbckup(系統備份資料夾)中找到該DLL檔案,將其複製到System資料夾中。如果這樣不行,在電腦啟動時又總是出現“***dll檔案丟失……”的提示框,你可以在“開始/運行”中運行Msconfig,進入系統配置實用程式對話框以後,單擊選擇“System.ini”標籤,找出提示丟失的DLL檔案,使其不被選中,這樣開機時就不會出現錯誤提示了。rundll的功能是以命令列的方式呼叫Windows的動態程式庫。Rundll32.exe與Rundll.exe的區別就在於前者是用於32位的鏈結庫,後者是用於16位的鏈結庫。rundll32.exe是專門用來調用dll檔案的程式。如果用的是Win98,rundll32.exe一般存在於Windows目錄下;如果用的WinXP、Win7,rundll32.exe一般存在於Windows\System32目錄下。若是在其它目錄,就可能是一個木馬程式,它會偽裝成rundll32.exe。連結方法當您在應用程式中載入 DLL 時,可以使用兩種連結方法來調用導出的 DLL 函式。這兩種連結方法是載入時動態連結和運行時動態連結。在運行時動態連結中,應用程式調用 LoadLibrary 函式或 LoadLibraryEx 函式以在運行時載入 DLL。成功載入 DLL 後,可以使用 GetProcAddress 函式獲得要調用的導出的 DLL 函式的地址。在使用運行時動態連結時,無需使用導入庫檔案。Win32 DLL的特點Win32 DLL與 Win16 DLL有很大的區別,這主要是由作業系統的設計思想決定的。一方面,在Win16 DLL中程式入口點函式和出口點函式(LibMain和WEP)是分別實現的;而在Win32 DLL中卻由同一函式DLLMain來實現。無論何時,當一個進程或執行緒載入和卸載DLL時,都要調用該函式,它的原型是BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);其中,第一個參數表示DLL的實例句柄;第三個參數系統保留;這裡主要介紹一下第二個參數,它有四個可能的值:DLL_PROCESS_ATTACH(進程載入),DLL_THREAD_ATTACH(執行緒載入),DLL_THREAD_DETACH(執行緒卸載),DLL_PROCESS_DETACH(進程卸載),在DLLMain函式中可以對傳遞進來的這個參數的值進行判別,並根據不同的參數值對DLL進行必要的初始化或清理工作。舉個例子來說,當有一個進程載入一個DLL時,系統分派給DLL的第二個參數為DLL_PROCESS_ATTACH,這時,你可以根據這個參數初始化特定的數據。另一方面,在Win16環境下,所有應用程式都在同一地址空間;而在Win32環境下,所有應用程式都有自己的私有空間,每個進程的空間都是相互獨立的,這減少了應用程式間的相互影響,但同時也增加了編程的難度。大家知道,在Win16環境中,DLL的全局數據對每個載入它的進程來說都是相同的;而在Win32環境中,情況卻發生了變化,當進程在載入DLL時,系統自動把DLL地址映射到該進程的私有空間,而且也複製該DLL的全局數據的一份拷貝到該進程空間,也就是說每個進程所擁有的相同的DLL的全局數據其值卻並不一定是相同的。因此,在Win32環境下要想在多個進程中共享數據,就必須進行必要的設定。亦即把這些需要共享的數據分離出來,放置在一個獨立的數據段里,並把該段的屬性設定為共享。

故障排除可以使用多個工具來幫助您解決 DLL 問題。以下是其中的部分工具。Dependency WalkerDependency Walker 工具可以遞歸掃描以尋找程式所使用的所有依賴 DLL。當您在 Dependency Walker 中打開程式時,Dependency Walker 會執行下列檢查:Dependency Walker 檢查是否丟失 DLL。Dependency Walker 檢查是否存在無效的程式檔案或 DLL。Dependency Walker 檢查導入函式和導出函式是否匹配。Dependency Walker 檢查是否存在循環依賴性錯誤。Dependency Walker 檢查是否存在由於針對另一不同作業系統而無效的模組。通過使用 Dependency Walker,您可以記錄程式使用的所有 DLL。這可能有助於避免和更正將來可能發生的 DLL 問題。當您安裝 Microsoft Visual Studio 6.0 時,Dependency Walker 將位於以下目錄中:drive\Program Files\Microsoft Visual Studio\Common\ToolsDLL Universal Problem SolverDLL Universal Problem Solver (DUPS) 工具用於審核、比較、記錄和顯示 DLL 信息。下表說明了組成 DUPS 工具的實用工具:Dlister.exe:該實用工具枚舉計算機中的所有 DLL,並且將此信息記錄到一個文本檔案或資料庫檔案中。Dcomp.exe:該實用工具比較在兩個文本檔案中列出的 DLL,並產生包含差異的第三個文本檔案。Dtxt2DB.exe:該實用工具將通過使用 Dlister.exe 實用工具和 Dcomp.exe 實用工具創建的文本檔案載入到 dllHell資料庫中。DlgDtxt2DB.exe:該實用工具提供 Dtxt2DB.exe 實用工具的圖形用戶界面(GUI) 版本。DLL影響檔案修復1、用Windows系統盤功能進行檔案修復;2、若在此之前有一鍵備份過,可以重新還原;3、從網上下載系統檔案然後覆蓋到原資料夾里;

相關詞條

DLL檔案DLL(Dynamic Link Library)檔案為動態程式庫檔案,又稱“應用程式拓展”,是軟體檔案類型。在Windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些...

lpk.dlllpk.dll病毒是當下比較流行的一類病毒,而正常系統本身也會存在lpk.dll檔案,這足以說明這類病毒的危險性。系統本身的lpk.dll檔案位於C:\WINDOWS\system32和C:...

dll延遲鎖相環(Delay—locked Loop,簡稱DLL)技術是在PLL技術上改進得到的,被廣泛套用於時序領域中。它繼承了PLL電路的鎖相技術,但去掉了PLL電路內的振盪器部分,取而...

動態程式庫檔案動態程式庫檔案,是一種不可執行的二進制程式檔案,它允許程式共享執行特殊任務所必需的代碼和其他資源。Windows提供的DLL檔案中包含了允許基於Windows的程式在Windows...

DLL木馬DLL是編譯好的代碼,與一般程式沒什麼大差別,只是它不能獨立運行,需要程式調用。DLL的代碼和其他程式幾乎沒什麼兩樣,僅僅是接口和啟動模式不同,只要改動一下代碼...

Hal.dllDLL 名稱: Microsoft Windows Hardware Abstraction Layer DLL 描述: hal.dll是Windows硬體提取層模組,用於解決硬體的複雜性。 屬於: Microsoft Windows Operating ...

.dll動態程式庫英文為DLL,是Dynamic Link Library的縮寫。DLL是一個包含可由多個程式,同時使用的代碼和數據的庫。例如,在 Windows 作業系統中,Comdlg32.dll 執行與...

ntdll.dllntdll.dll是重要的Windows NT核心級檔案。描述了windows本地NTAPI的接口。當Windows啟動時,ntdll.dll就駐留在記憶體中特定的防寫區域,使別的程式無法占用這個記憶體區域...

dbgeng.dlldbgeng.dll 是Microsoft® Visual Studio® 2005的一個關聯模組並非系統進程。大多數應用程式將數據存儲在系統註冊表,可能是您的註冊表受到碎片和大量累積起來...

dll劫持《DLL劫持》技術當一個可執行檔案運行時,Windows載入器將可執行模組映射到進程的地址空間中,載入器分析可執行模組的輸入表,並設法找出任何需要的DLL,並將它們映射...

hid.dll系統檔案hid.dll是存放在Windows系統資料夾中的重要檔案,通常情況下是在安裝作業系統過程中自動創建的,對於系統正常運行來說至關重要。除非用戶電腦被木馬病毒、或是...

pbvm80.dllpbvm80.dll是檔案名稱,適用平台Win9x/NT/2000/XP/2003/Vista。...... pbvm80.dll是檔案名稱,適用平台Win9x/NT/2000/XP/2003/Vista。外文名 pbvm80.dll DLL類...

umpnpmgr.dll系統檔案umpnpmgr.dll 出錯,極有可能是盜號木馬、流氓軟體等惡意程式所導致,其感染相關檔案並載入起來,一旦防毒軟體刪除被感染的檔案,就會導致相關組件缺失。...

asycfilt.dll系統檔案asycfilt.dll出錯,極有可能是盜號木馬、流氓軟體等惡意程式所導致,其感染相關檔案並載入起來,一旦防毒軟體刪除被感染的檔案,就會導致相關組件缺失,遊戲等常用...

common.dllCommon.dll檔案存在於d:\Tencent\QQ\Bin資料夾中,是騰訊QQ正常運行必備的檔案。木馬通過感染QQ安裝資料夾中的Common.dll進行載入來躲過殺軟監控的。被普通安全軟體...

dll注入所謂DLL注入就是將一個DLL放進某個進程的地址空間裡,讓它成為那個進程的一部分。要實現DLL注入,首先需要打開目標進程。...

oleacc.dlloleacc.dll是微軟Microsoft Active Accessibility相關動態程式庫檔案。屬於: Microsoft Active Accessibility...

browseui.dll屬於系統檔案。用於自動補全,或者說自動完成。例子:IE地址欄,或者運行欄。...... browseui.dll介紹 browseui.dll用於瀏覽器UI界面的管理。屬於:Windows系統DLL檔案: ...

koeicda.dll系統檔案koeicda.dll是存放在Windows系統資料夾中的重要檔案,通常情況下是在安裝作業系統過程中自動創建的,對於系統正常運行來說至關重要。在正常情況下不建議用戶對...

usbui.dllusbui.dll是通用程式界面應用程式接口,用於管理USB用戶界面。...... usbui.dll是通用程式界面應用程式接口,用於管理USB用戶界面。中文名 usbui.dll DLL 檔案 usbui ...

hidserv.dll系統檔案hidserv.dll是存放在Windows系統資料夾中的重要檔案,通常情況下是在安裝作業系統過程中自動創建的,對於系統正常運行來說至關重要。除非用戶電腦被木馬病毒、或...

activeds.dllactiveds - activeds.dll - DLL檔案信息DLL 檔案: activeds或者activeds.dllDLL名稱: ADs Router Layer DLL...

mmcndmgr.dll系統檔案mmcndmgr.dll是存放在Windows系統資料夾中的重要檔案,通常情況下是在安裝作業系統過程中自動創建的,對於系統正常運行來說至關重要。除非用戶電腦被木馬病毒、...

alidcp.dllalidcp.dll是存放在Windows系統資料夾中的重要檔案,通常情況下是在安裝作業系統過程中自動創建的,對於系統正常運行來說至關重要。在正常情況下不建議用戶對該類檔案(...

d3d8.dlld3d8.dll是DirectX的3D顯示部分控制模組,在DirectX 8.0中被安裝。 出現提示缺少d3d8.dll檔案問題的大部分原因是因該檔案被木馬病毒破壞導致系統程式找不到此檔案,...

動態程式庫(編程相關名詞)動態程式庫(Dynamic Link Library 或者 Dynamic-link Library,縮寫為 DLL),是微軟公司在微軟Windows作業系統中,實現共享函式館概念的一種方式。這些庫函式的擴展名是...

熱門詞條

劉海

中金線上

攻受

高峰大飯店

悅翔V3

蕭閎仁

釣竿

罪惡城市

高雄科技大學

復活節彩蛋

free my apps

絲漣

五十音

熊乃瑾寫真

中彩網

末日生存

旅遊平安險

摺紙戰士

復仇女神

ST.JOHN

多部未華子

複利

復仇者聯盟鷹眼黑寡婦

魔獸視窗化

崇實

COPIC

sexy back

卡瑪

你可能也喜欢

疍的组词、含义
3658商城

疍的组词、含义

07-07 356
园林绿化苗木剪插穗和扦插技术-海口冠平苗圃
普通(google)谷歌账号怎么区分国家/gmail账户怎么判断归属国家地区