DLL文件(Dynamic Linkable Library 即動(dòng)態(tài)鏈接庫(kù)文件),是一種不能單獨(dú)運(yùn)行的文件,它允許程序共享執(zhí)行特殊任務(wù)所必需的代碼和其他資源。
通過(guò)使用 DLL,程序可以實(shí)現(xiàn)模塊化,由相對(duì)獨(dú)立的組件組成。例如,一個(gè)計(jì)帳程序可以按模塊來(lái)銷(xiāo)售?梢栽谶\(yùn)行時(shí)將各個(gè)模塊加載到主程序中(如果安裝了相應(yīng)模塊)。因?yàn)槟K是彼此獨(dú)立的,所以程序的加載速度更快,而且模塊只在相應(yīng)的功能被請(qǐng)求時(shí)才加載。
Windows操作系統(tǒng)中的一些作為 DLL 實(shí)現(xiàn)的文件
·ActiveX 控件 (.ocx) 文件
ActiveX控件的一個(gè)示例是日歷控件,它使您可以從日歷中選擇日期。
·控制面板 (.cpl) 文件
.cpl 文件的一個(gè)示例是位于控制面板中的項(xiàng)。每個(gè)項(xiàng)都是一個(gè)專(zhuān)用 DLL。
·設(shè)備驅(qū)動(dòng)程序(.drv) 文件
設(shè)備驅(qū)動(dòng)程序的一個(gè)示例是控制打印到打印機(jī)的打印機(jī)驅(qū)動(dòng)程序。
電腦中后綴名為dll是動(dòng)態(tài)鏈接庫(kù)文件,與exe、com等文件一樣都是可執(zhí)行文件。在Windows系統(tǒng)中,應(yīng)用程序有很多不同的功能模塊,這些功能的實(shí)現(xiàn)就需要有dll文件的參與。一個(gè)dll文件可以被多個(gè)應(yīng)用程序調(diào)用,一個(gè)應(yīng)用程序也可以有多個(gè)dll文件?傊甦ll是一個(gè)包含可以由多個(gè)程序同時(shí)調(diào)用的代碼或數(shù)據(jù)的庫(kù)文件。
dll加載出錯(cuò)怎么解決
最近發(fā)現(xiàn),有很多電腦的玩家可以都不知道dll是什么文件,當(dāng)電腦出現(xiàn)dll加載出錯(cuò)時(shí)就顯得非常緊張。今天小編請(qǐng)來(lái)了系統(tǒng)工程師來(lái)為大家補(bǔ)充一下dll是什么文件以及遇到dll加載出錯(cuò)怎么解決的問(wèn)題。希望通過(guò)我們的這次專(zhuān)訪(fǎng),能為大家解決一些日常的電腦常見(jiàn)問(wèn)題
我們?cè)谑褂秒娔X時(shí)經(jīng)常會(huì)遇見(jiàn)dll加載出錯(cuò)的問(wèn)題,一般用戶(hù)在使用殺毒軟件或者木馬專(zhuān)殺工具掃描并刪除一些病毒文件后會(huì)出現(xiàn)這一情況。
dll加載出錯(cuò)大多是因?yàn)槲募䜩G失導(dǎo)致的,這個(gè)時(shí)候也不用緊張,教大家一個(gè)方法。打開(kāi)注冊(cè)表編輯器,在里面搜索加載出錯(cuò)的。dll的文件名,在搜到的結(jié)果頁(yè)面中,查看對(duì)應(yīng)的dll路徑,再去相應(yīng)的路徑下檢查文件是否存在,如果不存在,就將這個(gè)注冊(cè)表信息刪除,注意要搜索出錯(cuò)的dll文件才行。
雖然出現(xiàn)DLL文件錯(cuò)誤的原因很多,但平常用家遇到的問(wèn)題歸結(jié)起來(lái)不外乎系統(tǒng)軟件方面和硬件方面的問(wèn)題。
系統(tǒng)軟件方面的解決招式
輕手:
用最新版本的殺毒軟件查殺病毒。有相當(dāng)部分的病毒會(huì)造成系統(tǒng)文件的丟失或損壞,所以首先要升級(jí)病毒庫(kù)徹底查殺病毒。
中拳:
使用系統(tǒng)自帶的修復(fù)或還原功堋T赪IN98、ME中,在“開(kāi)始—運(yùn)行”對(duì)話(huà)框中鍵入“sfc”并回車(chē),啟動(dòng)“系統(tǒng)文件檢查器”進(jìn)行常規(guī)檢查。若查出有錯(cuò)誤,按照提示從系統(tǒng)盤(pán)中提取相關(guān)文件即可;在WindowsXP中,Windows文件保護(hù)功能可以保護(hù)一些系統(tǒng)文件,例如.sys、.dll、.ocx、.ttf、.fon和.exe文件。Windows文件保護(hù)在后臺(tái)運(yùn)行,可保護(hù)Windows安裝程序安裝的所有文件,而這些文件就保存在windowsxp的安裝目錄下的\system32\dllcache\下面。windows文件保護(hù)需要拷貝或還原文件時(shí),把你的xp安裝盤(pán)放入或者指定你在硬盤(pán)上備份的路徑即可。如果是在整理完注冊(cè)表后出現(xiàn),則需要恢復(fù)注冊(cè)表。
重刀:
自己動(dòng)手,豐衣足食。有少部分DLL文件出錯(cuò)是要靠手動(dòng)解決或升級(jí)系統(tǒng)文件解決的。
Windows 系統(tǒng)平臺(tái)上提供了一種完全不同的較有效的編程和運(yùn)行環(huán)境,你可以將獨(dú)立的程序模塊創(chuàng)建為較小的 DLL (Dynamic Linkable Library) 文件,并可對(duì)它們單獨(dú)編譯和測(cè)試。在運(yùn)行時(shí),只有當(dāng) EXE 程序確實(shí)要調(diào)用這些 DLL 模塊的情況下,系統(tǒng)才會(huì)將它們裝載到內(nèi)存空間中。這種方式不僅減少了 EXE 文件的大小和對(duì)內(nèi)存空間的需求,而且使這些 DLL 模塊可以同時(shí)被多個(gè)應(yīng)用程序使用。Windows 自己就將一些主要的系統(tǒng)功能以 DLL 模塊的形式實(shí)現(xiàn)。
簡(jiǎn)單DLL文件反編譯
1、首先下載VS2008 http://www.elephantinaurance.com/soft/6075.html
反編譯步驟:
1、將你要破解的DLL文件放在C盤(pán)執(zhí)行
2、開(kāi)始》所以程序》Microsoft Windows SDK v6.0A》tools》IL 反匯編程序
3、找到放在C盤(pán)的DLL文件
4、然后 文件》轉(zhuǎn)儲(chǔ)》確定位置并確認(rèn)
5、好了 看看C盤(pán)是否多了 兩個(gè)文件 xxx.il xxx.res
6、修改 xxx.il 文件內(nèi)的代碼
7、修改完成后將xxx.il和 xxx.res 把這兩個(gè)文件復(fù)制到 C:\Program Files\Microsoft Visual Studio 9.0\VC這個(gè)目錄下
8、然后執(zhí)行:開(kāi)始》所以程序》Microsoft Visual Studio 2008》Visual Studio Tools》Visual Studio 2008 命令提示
9、執(zhí)行:ilasm /dll /resource=xxx.res xxx.il xxx代表你取的名字
10、然后去看看C:\Program Files\Microsoft Visual Studio 9.0\VC 這個(gè)目錄下是不是多了一個(gè)xxx.dll文件 把編譯出來(lái)的文件拿去使用就OK了