1. 程式人生 > >System.DllNotFoundException:“無法載入 DLL“xxxx.dll”: 找不到指定的模組。 (異常來自 HRESULT:0x8007007E)。”

System.DllNotFoundException:“無法載入 DLL“xxxx.dll”: 找不到指定的模組。 (異常來自 HRESULT:0x8007007E)。”

連著一個周都在呼叫DLL檔案報錯,問題各不相同,所以記錄下,如果有同學嘗試這些方法都不能解決,請叫上我一起研究研究

方法一:右鍵專案屬性,選擇生成-平臺目標為x86

方法二:檢驗自己專案Debug目錄下的xxxx.dll是否有並且是自己需要呼叫的完好的DLL檔案,可以先備份後使用depends.exe開啟檢查。

方法三:如果使用DllImport的時候有在Debug目錄下額外建立自目錄,並填寫了子目錄路徑,嘗試將DLL檔案放入Debug目錄下直接引用,有些DLL檔案需要和exe執行檔案同目錄才能匯入(這是個坑)。

方法四:嘗試將DLL檔案放入系統目錄下使用,將相對路徑改為絕對路徑使用C:\Windows\SysWOW64\xxxx.dll。

方法五:使用depends.exe檢視xxxx.dll的依賴項,下載缺失的依賴項到Debug或C盤目錄下(我好幾次就是這樣解決的)。

方法六:特殊情況,這個DLL檔案其實是個COM元件,此時需要將xxxx.dll拷貝到(x86系統)C:\Windows\System32或(x64系統)C:\Windows\SysWOW64目錄下,然後開啟CDM執行regsvr32 xxxx.dll指令(如果失敗,可以建立.bat檔案將指令寫入後使用管理員身份執行,我在Win10遇到一個DLL檔案就只能這樣註冊),然後引用的時候DllImport並不好用,需要在專案的引用目錄下,右鍵新增引用,選擇COM元件,搜尋並選擇xxxx.DLL點選確認以新增引用。 之後直接就可以使用該DLL的內部函數了。