1樓:網友
dll,即動態鏈結庫。
要從程式編碼說起。
開發軟體的人(程式設計師)在編碼的時候,為什麼不把整個軟體編譯成乙個exe檔案呢?原因在於,他所編寫的**中有很多有重用的價值,即可以在他編寫的另外乙個程式中再次被利用。為了把這部分**獨立出來,就要把它單獨編譯為乙個檔案,這就是dll。
dll檔案不能被直接開啟,但是可以用exescope等提取其中的資源,或者反編譯為彙編。
2樓:峰羲狂
dll沒什麼用。不過別亂刪。用超級兔子就解決了。
dll字尾的檔案是什麼檔案
3樓:
它是dynamic link library 的縮寫形式,dll 是乙個包含可由多個程式同時使用的**和資料的庫,dll不是可執行檔案。動態鏈結提供了一種方法,使程序可以呼叫不屬於其可執行**的函式。函式的可執行**位於乙個 dll 中,該 dll 包含乙個或多個已被編譯、鏈結並與使用它們的程序分開儲存的函式。
dll 還有助於共享資料和資源。多個應用程式可同時訪問記憶體中單個dll 副本的內容。dll 是乙個包含可由多個程式同時使用的**和資料的庫。
例如,在 windows 作業系統中,comdlg32 dll 執行與對話方塊有關的常見函式。因此,每個程式都可以使用該 dll 中包含的功能來實現「開啟」對話方塊。這有助於促進**重用和記憶體的有效使用。
通過使用 dll,程式可以實現模組化,由相對獨立的元件組成。例如,乙個計帳程式可以按模組來銷售。可以在執行時將各個模組載入到主程式中(如果安裝了相應模組)。
因為模組是彼此獨立的,所以程式的載入速度更快,而且模組只在相應的功能被請求時才載入。
dll是什麼檔案的字尾名?
4樓:深藍丶籞
dll檔案(dynamic linkable library 即動態鏈結庫檔案),是一種不能單獨執行的檔案,它允許程式共享執行特殊任務所必需的**和其他資源 比較大的應用程式都由很多模組組成,這些模組分別完成相對獨立的功能,它們彼此協作來完成整個軟體系統的工作。可能存在一些模組的功能較為通用,在構造其它軟體系統時仍會被使用。在構造軟體系統時,如果將所有模組的源**都靜態編譯到整個應用程式 exe 檔案中,會產生一些問題:
乙個缺點是增加了應用程式的大小,它會佔用更多的磁碟空間,程式執行時也會消耗較大的記憶體空間,造成系統資源的浪費;另乙個缺點是,在編寫大的 exe 程式時,在每次修改重建時都必須調整編譯所有源**,增加了編譯過程的複雜性,也不利於階段性的單元測試。 windows 系統平台上提供了一種完全不同的較有效的程式設計和執行環境,你可以將獨立的程式模組建立為較小的 dll 檔案,並可對它們單獨編譯和測試。在執行時,只有當 exe 程式確實要呼叫這些 dll 模組的情況下,系統才會將它們裝載到記憶體空間中。
這種方式不僅減少了 exe 檔案的大小和對記憶體空間的需求,而且使這些 dll 模組可以同時被多個應用程式使用。windows 自己就將一些主要的系統功能以 dll 模組的形式實現。 一般來說,dll 是一種磁碟檔案,以.
dll、.drv、.fon、.
sys 和許多以 .exe 為副檔名的系統檔案都可以是 dll。它由全域性資料、服務函式和資源組成,在執行時被系統載入到呼叫程序的虛擬空間中,成為呼叫程序的一部分。
如果與其它 dll 之間沒有衝突,該檔案通常對映到程序虛擬空間的同一位址上。dll 模組中包含各種匯出函式,用於向外界提供服務。dll 可以有自己的資料段,但沒有自己的堆疊,使用與呼叫它的應用程式相同的堆疊模式;乙個 dll 在記憶體中只有乙個例項;dll 實現了**封裝性;dll 的編制與具體的程式語言及編譯器無關。
在 win32 環境中,每個程序都複製了自己的讀/寫全域性變數。如果想要與其它程序共享記憶體,必須使用記憶體對映檔案或者宣告乙個共享資料段。dll 模組需要的堆疊記憶體都是從執行程序的堆疊中分配出來的。
windows 在載入 dll 模組時將程序函式呼叫與 dll 檔案的匯出函式相匹配。windows 作業系統對 dll 的操作僅僅是把 dll 對映到需要它的程序的虛擬位址空間裡去。dll 函式中的**所建立的任何物件(包括變數)都歸呼叫它的執行緒或程序所有。
呼叫方式: 1、靜態呼叫方式:由編譯系統完成對 dll 的載入和應用程式結束時 dll 解除安裝的編碼(如還有其它程式使用該 dll,則 windows 對 dll 的應用記錄減1,直到所有相關程式都結束對該 dll 的使用時才釋放它,簡單實用,但不夠靈活,只能滿足一般要求。
隱式的呼叫:需要把產生動態連線庫時產生的 .lib 檔案加入到應用程式的工程中,想使用 dll 中的函式時,只須說明一下。
隱式呼叫不需要呼叫 loadlibrary() 和 freelibrary()。程式設計師在建立乙個 dll 檔案時,鏈結程式會自動生成乙個與之對應的 lib 匯入檔案。該檔案包含了每乙個 dll 匯出函式的符號名和可選的標識號,但是並不含有實際的**。
lib 檔案作為 dll 的替代檔案被編譯到應用程式專案中。 當程式設計師通過靜態鏈結方式編譯生成應用程式時,應用程式中的呼叫函式與 lib 檔案中匯出符號相匹配,這些符號或標識號進入到生成的 exe 檔案中。lib 檔案中也包含了對應的 dl l檔名(但不是完全的路徑名),鏈結程式將其儲存在 exe 檔案內部。
當應用程式執行過程中需要載入 dll 檔案時,windows 根據這些資訊發現並載入 dll,然後通過符號名或標識號實現對 dll 函式的動態鏈結。所有被應用程式呼叫的 dll 檔案都會在應用程式 exe 檔案載入時被載入在到記憶體中。可執行程式鏈結到乙個包含 dll 輸出函式資訊的輸入庫檔案(.
lib檔案)。作業系統在載入使用可執行程式時載入 dll。可執行程式直接通過函式名呼叫 dll 的輸出函式,呼叫方法和程式內部其 它的函式是一樣的。
2、動態呼叫方式:是由程式設計者用 api 函式載入和解除安裝 dll 來達到呼叫 dll 的目的,使用上較複雜,但能更加有效地使用記憶體,是編制大型應用程式時的重要方式。 顯式的呼叫:
是指在應用程式中用 loadlibrary 或 mfc 提供的 afxloadlibrary 顯式的將自己所做的動態連線庫調進來,動態連線庫的檔名即是上面兩個函式的引數,再用 getprocaddress() 獲取想要引入的函式。自此,你就可以象使用如同本應用程式自定義的函式一樣來呼叫此引入函式了。在應用程式退出之前,應該用 freelibrary 或 mfc 提供的 afxfreelibrary 釋放動態連線庫。
直接呼叫 win32 的 loadlibary 函式,並指定 dll 的路徑作為引數。loadlibary 返回 hinstance 引數,應用程式在呼叫 getprocaddress 函式時使用這一引數。getprocaddress 函式將符號名或標識號轉換為 dll 內部的位址。
程式設計師可以決定 dll 檔案何時載入或不載入,顯式鏈結在執行時決定載入哪個 dll 檔案。使用 dll 的程式在使用之前必須載入(loadlibrary)載入dll從而得到乙個dll模組的控制代碼,然後呼叫 getprocaddress 函式得到輸出函式的指標,在退出之前必須解除安裝dll(freelibrary)。 正因為dll 有佔用記憶體小,好編輯等的特點有很多電腦病毒都是dll格式檔案。
但不能單獨執行。 動態鏈結庫通常都不能直接執行,也不能接收訊息。它們是一些獨立的檔案,其中包含能被可執行程式或其它dll呼叫來完成某項工作的函式。
只有在其它模組呼叫動態鏈結庫中的函式時,它才發揮作用。
5樓:甜小鬍子甜
dll是dynamic link library的縮寫,意為動態鏈結庫.在windows中,許多應用程式並不是乙個完整的可執行檔案,它們被分割成一些相對獨立的動態鏈結庫,即dll檔案,放置於系統中.當我們執行某乙個程式時,相應的dll檔案就會被呼叫.
乙個應用程式可有多個dll檔案,乙個dll檔案也可能被幾個應用程式所共用,這樣的dll檔案被稱為共享dll檔案. dll檔案一般被存放在c:\windows\system目錄下
如何開啟字尾名為dll的檔案?謝謝!
6樓:匿名使用者
dll型別的檔案為動態鏈結庫檔案,需要編輯時可以通過ultraedit等支援16進製制編輯的工具開啟並修改,但其內容為二進位制編碼,無法直接理解。
dll(英文全名dynamic link library)檔案即動態鏈結庫檔案,又稱「應用程式拓展」,是軟體檔案型別,可以將其理解為實現一定功用的功能模組。在windows軟體開發中,應用程式一般不會是單獨乙個完整的可執行檔案。除了主程式本身,大多數功能都會被分割成一些相對獨立的動態鏈結庫檔案,放置於系統中。
當系統中執行的程式要求實現一定的功能時,系統會自動呼叫相應的dll檔案實現其包含的功能。乙個應用程式可使用多個dll檔案,乙個dll檔案也可能被不同的應用程式使用,這樣可以減輕程式開發的強度,共享資源。
7樓:匿名使用者
那是系統編譯程式檔案。。如果讓你能開啟看。。微軟早就關門了!
8樓:魚眼中的淚
要開啟還不簡單啊,選擇開啟方式,然後記事本,就可以了啊!只是…………
模組是什麼?是擴充套件名為 .dll 的檔案嗎?
9樓:手機使用者
擴充套件名為dll的檔案是動態鏈結庫函式,它的定義如下: 動態鏈結庫的概念 動態鏈結庫(dynamic link library,縮寫為dll)是乙個可以被其它應用程式共享的程式模組,其中封裝了一些可以被共享的例程和資源。動態鏈結庫檔案的副檔名一般是dll,也有可能是drv、sys和fon,它和可執行檔案(exe)非常類似,區別在於dll中雖然包含了可執行**卻不能單獨執行,而應由windows應用程式直接或間接呼叫。
動態鏈結是相對於靜態鏈結而言的。所謂靜態鏈結是指把要呼叫的函式或者過程鏈結到可執行檔案中,成為可執行檔案的一部分。換句話說,函式和過程的**就在程式的exe檔案中,該檔案包含了執行時所需的全部**。
當多個程式都呼叫相同函式時,記憶體中就會存在這個函式的多個拷貝,這樣就浪費了寶貴的記憶體資源。而動態鏈結所呼叫的函式**並沒有被拷貝到應用程式的可執行檔案中去,而是僅僅在其中加入了所呼叫函式的描述資訊(往往是一些重定位資訊)。僅當應用程式被裝入記憶體開始執行時,在windows的管理下,才在應用程式與相應的dll之間建立鏈結關係。
當要執行所呼叫dll中的函式時,根據鏈結產生的重定位資訊,windows才轉去執行dll中相應的函式**。 一般情況下,如果乙個應用程式使用了動態鏈結庫,win32系統保證記憶體中只有dll的乙份複製品,這是通過記憶體對映檔案實現的。dll首先被調入win32系統的全域性堆疊,然後對映到呼叫這個dll的程序位址空間。
在win32系統中,每個程序擁有自己的32位線性位址空間,如果乙個dll被多個程序呼叫,每個程序都會收到該dll的乙份映像。與16位windows不同,在win32中dll可以看作是每個程序自己的**。 二、動態鏈結庫的優點 1. 共享**、資源和資料 使用dll的主要目的就是為了共享**,dll的**可以被所有的windows應用程式共享。
2. 隱藏實現的細節 dll中的例程可以被應?c採納哦
檔案字尾名為 cpp是什麼型別的檔案
cpp是c 源 檔案的副檔名 文字聊天?通過區域網檔案共享可以實現 追問 我暈 問題怎麼是那個?通過區域網共享可以在文字裡聊天?兩台不在同一地方的電腦可以建立區域網吧?回答 你標題和問題不一樣啊 區域網一般是在乙個地方的,例如同 乙個網 吧裡 追問 意思就是說如果不挨在一起用 分支器 就不能建立區域...
請問檔案的字尾名為ISO的是什麼檔案
iso檔案其實就是光碟的映象檔案,燒錄軟體可以直接把iso檔案燒錄成可安裝的系統光碟,iso檔案一般以iso為副檔名,其檔案格式為iso9660。iso9660,也被一些硬體和軟體 商稱作cdfs 光碟檔案系統 是乙個由國際標準化組織 iso 為光碟媒介釋出的檔案系統。其目標是能夠在不同的作業系統,...
dll檔案怎麼開啟,DLL檔案怎麼開啟
必須要用程式設計軟體開啟,用vc dll檔案是程式執行時另外需要的一種鏈結庫,普通的記事本是無法讀取它的內容的,只會顯示亂碼。dll原本是動態鏈結庫的意思,有動態就有靜態連線庫。c的生成應用程式的過程是這樣的他首先會編譯成lib檔案然後使用link程式來生成最終的可執行程式,早期的編譯器,包括pas...