裝配(assembly)和動態連結庫(dll)的區別

庫是可用於開發應用程式的資源集合。庫通常由子程式、函式、類、值和型別組成。在連結過程中(通常由連結器完成),庫和可執行檔案相互引用。DLL檔案是動態連結的庫檔案。DLL是由微軟開發的。但是由於DLL檔案存在一些問題,Microsoft提出了彙編檔案格式(使用.NET framework)。彙編檔案在物理上與DLL非常相似,但它們有許多內部差異。...

程序集與DLL

庫是可用於開發應用程序的資源集合。庫通常由子程序、函數、類、值和類型組成。在鏈接過程中(通常由鏈接器完成),庫和可執行文件相互引用。DLL文件是動態鏈接的庫文件。DLL是由微軟開發的。但是由於DLL文件存在一些問題,Microsoft提出了彙編文件格式(使用.NET framework)。彙編文件在物理上與DLL非常相似,但它們有許多內部差異。

什麼是DLL?

動態鏈接庫(通常稱為DLL)是由Microsoft開發的共享庫實現。它使用.dll、.ocx或.drv擴展名,它們在Microsoft Windows和OS/2操作系統中使用。dll由常規dll文件使用。ocx擴展名由包含ActiveX控件的庫使用,.drv擴展名由舊系統驅動程序文件使用。DLL文件格式與Windows EXE文件相同(32位/64位Windows上的可移植可執行文件,16位Windows上的新可執行文件)。因此,任何代碼、數據和資源的組合都可以包含在DLL文件中(就像在EXE文件中一樣)。實際上,具有DLL文件格式的數據文件稱為資源DLL。圖標庫(擴展名為.icl)和字體文件(擴展名為.fon和.fot)是資源DLL的示例。

稱為secti***的組件組成一個DLL,每個節都有自己的屬性,比如只讀/可寫和可執行/不可執行。代碼段是可執行的,而數據段是不可執行的。代碼部分是共享的,數據部分是私有的。這意味著使用DLL的所有進程將使用相同的代碼副本,而每個進程都將有自己的數據副本。Windows的主要動態庫是kernel32.dll,它包含Windows上的基本函數(與文件和內存相關的功能)。COM(Component Object Model)是DLL對OOP(面向對象編程)的擴展。傳統的DLL比COM文件更容易使用。

什麼是集合?

Microsoft引入彙編文件是為了解決DLL文件存在的幾個問題。程序集文件是在Microsoft.NET framework中引入的。功能的可執行邏輯單元稱為程序集。程序集可在.NET CLR(公共語言運行庫)下執行。實際上,程序集以EXE或DLL文件的形式存在。但是,它們在內部與Microsoft Win32 DLL有很大不同。一個微軟的元數據,是一個由MISL組成的中間語言。程序集是自描述的。清單包含諸如名稱、版本、區域性、強名稱、文件列表、類型和依賴項等信息。MISL代碼通過CLR執行(不能直接執行)。

程序集和DLL有什麼區別?

  • 發表於 2020-10-23 20:21
  • 閱讀 ( 27 )
  • 分類:科技

你可能感興趣的文章

靜態繫結(static binding)和動態繫結(dynamic binding)的區別

...結。它被稱為繫結。有兩種型別的繫結。它們是靜態繫結和動態繫結。靜態繫結和動態繫結的關鍵區別在於,在靜態繫結中,繫結是在編譯時解析的,而動態繫結是在執行時(即實際執行時間)解析的。本文討論這兩種繫結機制...

  • 發佈於 2020-10-19 17:49
  • 閲讀 ( 89 )

靜止的(static)和動態路由(dynamic routing)的區別

靜態與動態路由 靜態路由和動態路由的區別在於路由條目進入系統的方式。計算機網路中的路由是指在計算機網路中正確地轉發資料包,使資料包最終到達正確的目的地的過程。路由主要有靜態路由和動態路由兩種型別。在...

  • 發佈於 2020-10-29 09:42
  • 閲讀 ( 46 )

最常見的5個windows錯誤及其修復方法

... 動態連結庫(DLL)是一個共享檔案,許多程式可以呼叫它來執行某些操作。這些都內建在Windows中,這樣每個軟體都不必建立自己的方法,比如說,列印測試頁。無論使用...

  • 發佈於 2021-03-15 00:38
  • 閲讀 ( 48 )

6個預設的windows檔案和資料夾,您不應觸控

...dows9x版本成為難題的問題。通俗的術語“DLL地獄”描述了動態連結庫(DLL)檔案衝突、重複或中斷時出現的問題。 ...

  • 發佈於 2021-03-15 10:38
  • 閲讀 ( 49 )

葡萄酒程式不起作用?嘗試以下步驟

...來執行Windows軟體。在Microsoft世界中,這些元件稱為DLL(動態連結庫)。它們提供了其他程式賴以工作的額外特性和功能。一個例子是d3d8.dll,它使程式能夠訪問微軟的directx8遊戲功能。 ...

  • 發佈於 2021-03-16 10:20
  • 閲讀 ( 49 )

WindowsSystem32目錄:它是什麼以及為什麼不能刪除它

... DLL(動態連結庫)檔案允許程式訪問部分視窗並執行標準任務。例如,一個DLL檔案可能允許計算機播放音訊,而另一個可以啟用自動Windows更新。許多DLL在您啟動計算機後立即...

  • 發佈於 2021-03-20 03:47
  • 閲讀 ( 49 )

如何修復windows中dll檔案丟失的錯誤

... 什麼是動態連結庫(a dll)? ...

  • 發佈於 2021-03-26 11:29
  • 閲讀 ( 62 )

如何在windows10中管理winsxs資料夾

...DLL地獄”問題而建立的。簡單地說,它涉及任何程式更改動態連結庫(DLL)檔案以影響需要使用相同DLL的其他應用程式的關鍵功能的例項。 ...

  • 發佈於 2021-03-30 19:20
  • 閲讀 ( 48 )

什麼是windows上的程式碼注入?

...注入通常也稱為DLL注入,因為注入的程式碼通常是以DLL(動態連結庫)檔案的形式出現的。然而,應用程式也可以將其他型別的非dll程式碼注入到程序中。 程式碼注入的用途是什麼 程式碼注入用於在Windows上完成各種技巧和功...

  • 發佈於 2021-04-05 00:45
  • 閲讀 ( 138 )

什麼是system32目錄?(以及為什麼不應該刪除它)

...是一些最常見的型別,如果你開始在資料夾中挖掘的話。動態連結庫(DLL)檔案是Windows程式使用的共享庫檔案,這些程式包括內建在Windows中的實用程式和安裝用於執行各種功能的第三方程式。 相關:什麼是DLL檔案,為什麼我的...

  • 發佈於 2021-04-06 14:34
  • 閲讀 ( 48 )
Dalyf小號
Dalyf小號

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦