在電腦運算領域,DLL地獄(DLL Hell)指Microsoft Windows系統中,因為動態連結函數庫(DLL)的版本或相容性的問題而造成軟件無法正常執行。

Windows早期並沒有很嚴謹的DLL版本管理機制,以致經常發生安裝了某軟件後,因為其覆蓋了系統上原有的同一個DLL檔案,而導致原有可執行的程式無法執行。但還原回原有的DLL檔案之後,新安裝的軟件就無法執行。若影響到系統所使用的重要DLL時也可能讓系統容易死機甚至無法正常啟動。

在一般情況下,開發時修改了類別中的成員變數的大小或者改變虛擬函式的個數以及順序會觸發DLL地獄。

如果DLL重新發佈時類別成員(虛擬函式表也屬於類別成員)的地址發生變化,那也會觸發DLL地獄。

參見

外部連結