關於動態連接庫DLL文件的通常常識及常見問題解析

DLL是Dynamic Link Library的縮寫,意爲動態連接庫。在Windows中,許多應用程序並非一個完整的可執行文件,它們被分割成一些相對獨立的動態連接庫,即DLL 文件,放置於系統中。當咱們執行某一個程序時,相應的DLL文件就會被調用。一個應用程序可有多個DLL文件,一個DLL文件也可能被幾個應用程序所共 用,這樣的DLL文件被稱爲共享DLL文件。DLL文件通常被存放在C:WindowsSystem目錄下。
DLL文件即動態連接庫文件,是一種可執行文件,它容許程序共享執行特殊任務所必需的代碼和其餘資源。Windows提供的DLL文件中包含了容許基於Windows的程序在Windows環境下操做的許多函數和資源。
DLL多數狀況下是帶有DLL擴展名的文件,但也多是EXE或其餘擴展名。它們向運行於Windows操做系統下的程序提供代碼、數據或函數。程序可根據DLL文件中的指令打開、啓用、查詢、禁用和關閉驅動程序。
DLL可在「C:Windows」目錄「C:WindowsSystem」目錄和程序的安裝目錄中找到。若是啓動程序,但一個或多個DLL文件丟失或毀 壞,則會收到出錯消息,如「找不到xyz.dll」。若是啓動的程序帶有一個過時的DLL文件或不匹配的DLL文件,則會出現「未定義的動態連接調用」消 息。這時,你可在其餘電腦上找到正確的DLL文件並將它拷貝到適當的目錄下,程序就能正確運行。

一、如何瞭解某應用程序使用哪些DLL文件
右鍵單擊該應用程序並選擇快捷菜單中的「快速查看」命令,在隨後出現的「快速查看」窗口的「引入表」一欄中你將看到其使用DLL文件的狀況。

二、如何知道DLL文件被幾個程序使用
運行Regedit,進入HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrent-
VersionSharedDlls子鍵查看,其右邊窗口中就顯示了全部DLL文件及其相關數據,其中數據右邊小括號內的數字就說明了被幾個程序使用,(2)表示被兩個程序使用,(0)則表示無程序使用,能夠將其刪除。

三、如何解決DLL文件丟失的狀況
有時在卸載文件時會提醒你刪除某個DLL文件可能會影響其餘應用程序的運行。因此當你卸載軟件時,就有可能誤刪共享的DLL文件。一旦出現了丟失 DLL文件的狀況,若是你能肯定其名稱,能夠在Sy**ckup(系統備份文件夾)中找到該DLL文件,將其複製到System文件夾中。若是這樣不行, 在電腦啓動時又老是出現「***dll文件丟失……」的提示框,你能夠在「開始/運行」中運行Msconfig,進入系統配置實用程序對話框之後,單擊選 擇「System.ini」標籤,找出提示丟失的DLL文件,使其不被選中,這樣開機時就不會出現錯誤提示了。


創建註冊DLL和反註冊DLL文件的快捷方式


有的程序員常常要註冊或者反註冊本身寫的dll文件,加一個快捷方式會減小本身的工做量:

[HKEY_CLASSES_ROOT\dllfile\shell\Unregister]
"Command"="regsvr32 %1 /u"

[HKEY_CLASSES_ROOT\dllfile\shell\Register]
"Command"="regsvr32 %1"

當咱們須要註冊或者反註冊dll時,只要在該dll文件上按下鼠標右鍵便可。


關於系統文件(dll)丟失 錯誤的解決方法

◆症狀1:
機器正常。使用Win98,一安裝就彈出窗口提示:「未處理的異常狀況」錯誤代碼:0x80070725,說明:RPC佔位程序的版本不兼容。安裝程序將當即結束。」殺過毒,註冊表清理。怎麼解決?
◆說明:
RPC(遠程調用程序),用於經過網絡將應用程序函數調用轉發到遠程系統。最典型的用途就是遠程管理。一旦出現系統警告「RPC佔位程序不兼容」時,首先可能的就是系統中有關的網絡組件程序發生問題。
發生這個問題大多在Win98/NT操做系統上。由於在Win2000/XP操做系統中,都使用了IPV6支持PRC技術,廣泛支持目前Windows程序,因此通常在2000後的系統中不多有這個問題出現。
98我的用戶頻繁出現這問題的常見緣由:
1.用戶安裝新程序裏的網絡功能在Win98下不兼容。好比金山毒霸2002/2003,裏面有新的網絡防火牆功能,而這個功能實現的前提條件是系統必需要有更好的系統網絡組件。一旦系統中的有關文件較老,而安裝程序卻未提供有關更新時,就會出現這個問題。
2.這個狀況更多發生網絡遊戲安裝中。爲了加快遊戲的速度,許多網絡遊戲設計時大量採用了32位以上的RPC支持功能,而在許多98用戶中卻並有這樣的系統文件,這樣就會常常在安裝、運行的時候出現該問題。
◆建議:
1.打補丁(http://download.microsoft.com/downl...us/mcrepair.exe)。
2.網絡遊戲安裝中出現該問題也可將DirectX版本升級到8.0以上。若是升級DirectX8後仍出現這個問題,緣由還來自於系統中的網絡配置。打開網絡鄰居,加裝有關的IPX、TCP/IP協議,能夠解決問題。


◆症狀2:
在上網過程當中,IE忽然關閉,再次打開出現錯誤顯示wsock32.dll 動態連接庫錯誤,必須重啓電腦,IE才能正常,請問緣由和解決辦法。
◆建議:
若是就是偶爾一次,重啓解決問題就能夠了。
若是常常出現wsock32.dll動態連接庫錯誤,就要須要查毒,可能中毒了(以下說明)
Hybris蠕蟲病毒,該病毒經過電子郵件的附件進行傳播,一旦收件人打開附件,就會被感染。它在WindowsSystem目錄下產生一個 wsock32.dll的副本,副本的主文件名是隨機產生的8個字母,沒有文件擴展名。還會修改Windows目錄下的winint.ini文件,使下次 Windows開機時原wsock32.dll文件被覆蓋。
若是執行了Hybris病毒,病毒將修改Windows的系統文件wsock32.dll,而且將附有該病毒的電子郵件發送出去。不管使用哪種電子郵件軟件,均可能感染該病毒。


◆症狀3:
運行「系統信息」提示找不到mfc42u.dll。經查確認無毒。
◆建議:
下載該文件:http://www.microsoft.com


◆症狀4:
IE6.0地址欄裏ctrl+enter的自動填寫功能出現www.*.com.cn,而不是www.*.com.。
◆說明:
IE6的browselc.dll文件中字符串的BUG。
browselc.dll位於:
Win9x:WindowsSystem
Win2000:WINNTSystem32
WinXP:WindowsSystem32
◆建議:
1、下載browselc.dll:http://download.pchome.net/system/patch/9524.html

2、手動修改:找到browselc.dll文件,複製原文件,而後用eXeScope(或其餘能修改exe文件的軟件)打開復制的文件(不能直接對原文 件進行修改),修改處位於resource>string,把809字符串中的co.cn 修改爲com,保存退出。
替換:修改完的browselc.dll文件須要在DOS下(若是裝了雙系統可在另外一個系統中)替換原文件。(由於這個文件是受到系統保護的,而且當前正被系統使用。替換時請注意備份原文件。)


◆症狀5:
IE中沒法在新窗口中打開銜接。
◆建議:
1.開始→運行,輸入regsvr32 actxprxy.dll,點擊肯定,接着會出現一個信息對話框「DllRegisterServer in actxprxy.dll succeeded」,該對話框中點肯定;
2.開始→運行,輸入regsvr32 shdocvw.dll,點擊肯定,接着會出現一個信息對話框「DllRegisterServer in shdocvw.dll succeeded」,該對話框中點肯定;
3.從新啓動電腦。


◆症狀6:
一開機自動運行Rundll32.exe程序,進入msconfig把它從啓動欄選項去掉,下次開機仍是照樣自動運行。
◆說明:
rundll的功能是以命令列的方式呼叫Windows的動態鏈結庫。
Rundll32.exe與Rundll.exe的區別就在於前者是呼叫32位的鏈結庫,後者是用於16位的鏈結庫。rundll32.exe是專門用來調用dll文件的程序。
若是用的是Win98,rundll32.exe通常存在於Windows目錄下;
若是用的WinXP,rundll32.exe通常存在於WindowsSystem32目錄下。
如果在其它目錄,就多是一個***程序,它會假裝成rundll32.exe。
◆建議:
通常由3721引發,卸載3721能夠解決問題。
(在啓動項中表現爲「 Rundll32.exe C:WINDOWSDownloaded Program FilesCNSMIN.DLL,Rundll32 」)


◆症狀7:
一使用IE就會跳出對話框「Explorer發生錯誤(KERNEL32.DLL)」,從新啓動後問題依舊。
◆建議:
用「記事本」建立或者直接修改系統配置文件C:Config.sys,在其中加入以下3行語句:
FILES=65
BUFFERS=40
STACKS=64,512
若是錯誤仍然存在,可以使用「記事本」打開系統文件夾(Windows)下的system.ini文件,而後在[386Enh]節上加入以下兩行語句:
Increases default stack pages from 2 to 6
MinSPs=6
(MinSPs默認值是2,如須要,每次增長2直到解決問題爲止,而第一句前面的「;」主要起註釋做用。)
修改好後保存退出,重啓使之生效。


◆症狀8:
開機時彈出對話框,提示「缺乏動態庫連接文件msnp32.dll,network,沒法正常運行」,按肯定後,進入系統一切正常。在別人的機器上沒法找到這個文件,從新覆蓋裝系統也沒有用。
◆說明:
msnp32.dll是Microsoft網絡功能的重要組件,安裝了網卡(包括撥號適配器)和Microsoft網絡客戶端,該文件位於System目錄下。系統找不到該文件,可能被誤刪。
◆建議:
在網絡屬性中刪除掉全部的協議和適配器,而後從新添加適配器、TCP/IP協議和Microsoft網絡客戶,Windows將從新複製網絡功能須要的文件。


◆症狀9:
系統提示:「找不到所需的.DLL文件——MSVBVM60.DLL」
◆說明:
此文件爲VB運行庫文件,許多程序的安裝和運行都須要該文件。
◆建議:
1.下載此文件後複製到系統的system文件夾下。(http://download.pchome.net/development/vb/807.html,壓縮包中包括MSVBVM60.DLL和VB6CHS.DLL)
2.開始→運行,輸入regsvr32 C:WindowsSystemMSVBVM60.DLL,肯定(此操做目的是註冊此動態連接庫文件)。
注意:此文件爲系統文件,需在「查看」→「文件夾選項」→「文件」選項中選中「顯示全部文件」後才能看到此文件。


◆症狀10:
筆記本電腦,最近開機顯示:啓動程序時出錯「找不到所需的.DLL文件——DMIAPI32.DLL」,如何解決?
◆說明:
DMIAPI32.DLL是(DMI)桌面管理界面服務所需的文件,對筆記本尤其重要。基於DMI標準的管理實用程序可很容易實現遠程監控和管理,如系統BIOS和常駐軟件驅動程序的檢查和管理。 DMI標準是實現筆記本易管理性的惟一捷徑。
◆建議:
1.在DMIAPI32.DLL的同一目錄下還有一文件名是Win32sl.exe的文件,檢查註冊表的啓動項裏有沒有設置此文件隨系統啓動。沒有的話,加進去。
2.同時多是此dll文件已壞,建議聯繫筆記本的經銷商,可獲得此文件的原始拷貝。html

相關文章
相關標籤/搜索