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

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

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

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

參見

編輯

外部連結

編輯