1. 程式人生 > >關於無法加載DLL"***.dll":找不到指定的模塊(異常來自HRESULT:0x8007007E)問題的解決辦法

關於無法加載DLL"***.dll":找不到指定的模塊(異常來自HRESULT:0x8007007E)問題的解決辦法

網上 異常 進程 pre -o 無法加載 存在 出現 window

最近在編寫C#代碼的過程中,遇到此問題,網上查找資料後,終於解決了此問題。現將解決方法記錄下來,以便以後查看。註:此方法未必能解決所有這類問題,僅供參考。

通常在以下情況下會出現這種異常:

(1)想要在64的系統上運行32位的應用程序並且沒有WOW64(Windows-on-Windows 64-bit)子系統的存在。

(2)在編寫運行在64位操作系統平臺的應用程序時,調用DLL並且此DLL也是在64位操作平臺下生成的,此時將有可能出現這類問題(我所遇到的情況)。

解決方法:

方法1:找到這個無法加載的DLL(自動生成或網上下載),然後將此DLL的副本放到C:\Windows\System32的目錄下即可。

註:關於WOW64模式

WOW64 (Windows-on-Windows 64-bit)是一個Windows操作系統的子系統, 它為現有的 32 位應用程序提供了 32 位的模擬環境,可以使大多數 32 位應用程序在無需修改的情況下運行在 Windows 64 位版本上。WOW64 是在用戶模式下實現的,作為 ntdll.dll 和內核之間的層。WOW64 及其支持的一些 DLL 僅僅是可以加載到 32 位進程中的 64 位的 DLL。對於所有其他情況,進程保持為純進程。32 位的進程無法加載 64 位的 DLL,反之亦然。

關於無法加載DLL"***.dll":找不到指定的模塊(異常來自HRESULT:0x8007007E)問題的解決辦法