dll是什麼軟體編寫的裡面的內容是什麼

2021-12-26 21:48:54 字數 4606 閱讀 4981

1樓:匿名使用者

樓上真牛,從**複製來的,不過挺具體的,是微軟的

2樓:匿名使用者

dll是dynamic link library的縮寫,意為動態連結庫。dll檔案一般被存放在c:windowssystem目錄下。

dll是一個包含可由多個程式同時使用的**和資料的庫。   在windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些相對獨立的動態連結庫,即dll檔案,放置於系統中。當我們執行某一個程式時,相應的dll檔案就會被呼叫。

一個應用程式可有多個dll檔案,一個dll檔案也可能被幾個應用程式所共用,這樣的dll檔案被稱為共享dll檔案。例如,在 windows 作業系統中,comdlg32 dll 執行與對話方塊有關的常見函式。因此,每個程式都可以使用該 dll 中包含的功能來實現「開啟」對話方塊。

這有助於促進**重用和記憶體的有效使用。

通過使用 dll,程式可以實現模組化,由相對獨立的元件組成。例如,一個計帳程式可以按模組來銷售。可以在執行時將各個模組載入到主程式中(如果安裝了相應模組)。

因為模組是彼此獨立的,所以程式的載入速度更快,而且模組只在相應的功能被請求時才載入。

此外,可以更為容易地將更新應用於各個模組,而不會影響該程式的其他部分。例如,您可能具有一個工資計算程式,而稅率每年都會更改。當這些更改被隔離到 dll 中以後,您無需重新生成或安裝整個程式就可以應用更新。

windows 作業系統中的一些作為 dll 實現的檔案:

·activex 控制元件 (.ocx) 檔案

activex 控制元件的一個示例是日曆控制元件,它使您可以從日曆中選擇日期。

·控制面板 (.cpl) 檔案

.cpl 檔案的一個示例是位於控制面板中的項。每個項都是一個專用 dll。

·裝置驅動程式 (.drv) 檔案

裝置驅動程式的一個示例是控制列印到印表機的印表機驅動程式。

dll 的優點

當程式使用 dll 時提供的一些優點:

·使用較少的資源

當多個程式使用同一個函式庫時,dll 可以減少在磁碟和實體記憶體中載入的**的重複量。這不僅可以大大影響在前臺執行的程式,而且可以大大影響其他在 windows 作業系統上執行的程式。

·推廣模組式體系結構

dll 有助於促進模組式程式的開發。這可以幫助您開發要求提供多個語言版本的大型程式或要求具有模組式體系結構的程式。模組式程式的一個示例是具有多個可以在執行時動態載入的模組的計帳程式。

·簡化部署和安裝

當 dll 中的函式需要更新或修復時,部署和安裝 dll 不要求重新建立程式與該 dll 的連結。此外,如果多個程式使用同一個 dll,那麼多個程式都將從該更新或修復中獲益。當您使用定期更新或修復的第三方 dll 時,此問題可能會更頻繁地出現。

1、如何瞭解某應用程式使用哪些dll檔案

右鍵單擊該應用程式並選擇快捷選單中的「快速檢視」命令,在隨後出現的「快速檢視」視窗的「引入表」一欄中你將看到其使用dll檔案的情況。

2、如何知道dll檔案被幾個程式使用

執行regedit,進入hkey_local_machinesoftwaremicrosrftwindowscurrent-

ersionshareddlls子鍵檢視,其右邊視窗中就顯示了所有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,rundll32.exe一般存在於windowssystem32目錄下。

若是在其它目錄,就可能是一個木馬程式,它會偽裝成rundll32.exe。

dll 故障排除工具

可以使用多個工具來幫助您解決 dll 問題。以下是其中的部分工具。

dependency walker

dependency 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\tools

dll universal problem solver

dll 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 的型別

當您在應用程式中載入 dll 時,可以使用兩種連結方法來呼叫匯出的 dll 函式。這兩種連結方法是載入時動態連結和執行時動態連結。

1、載入時動態連結

在載入時動態連結中,應用程式像呼叫本地函式一樣對匯出的 dll 函式進行顯式呼叫。要使用載入時動態連結,請在編譯和連結應用程式時提供標頭檔案 (.h) 和匯入庫檔案 (.

lib)。當您這樣做時,連結器將向系統提供載入 dll 所需的資訊,並在載入時解析匯出的 dll 函式的位置。

2、執行時動態連結

在執行時動態連結中,應用程式呼叫 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是什麼怎麼樣才能從輔助裡面找到dll檔案

動態連結庫,簡抄 單的襲說就是程式執行的一些必須bai檔案,動態連結可du以實zhi現此資料被多程式呼叫,dao典型的就是驅動程式,呼叫dll是程式的設定,需要程式設計實現 反編匯然後修改程式 單獨呼叫使用dll函式檢視器可以實現 不實現任何功能 歡迎追問 dll函式檢視器baiv2.0,但不建議修...

月亮裡面的圖案像什麼月亮裡面的圖案是什麼啊?

我感覺像笑臉 只不過有好幾年沒有真正的看過月亮了 現在回憶的都是小時候的月亮 嫦娥一號升空,人們探索月亮的意識也越來越強。有人就問,月亮表面像個人臉,為什麼月亮表面有的地方明有的地方暗呢。當初義大利科學家伽利略希望用他那簡單的望遠鏡看清楚月面上的那些明暗部分究竟是什麼?可是,他只能看清楚亮的部分是月...

眼罩裡面的藍色液體是什麼冰袋裡面的液體是什麼

液體是託瑪琳液體,不會對人體有害,假如接觸 後,可以用水沖洗,不會有傷害。液體眼罩的危害 液體眼罩長時間佩帶會增大眼壓,會造成晶狀體變形影響視力 好處 短時間佩帶可以防止眼睛疲勞的 帶眼罩睡覺只要不是太緊在生理上是沒有壞處的 但正常睡覺的時候需要的是一種放鬆的狀態 如果長時間帶眼罩的話在心理上會感覺...