C#調用C++的DLL錯誤解決方法
阿新 • • 發佈:2019-01-09
.dll exce 格式不正確 src 缺少 system32 ++ dll 加載dll
一、報錯如下:無法加載DLL"**.dll":找不到指定的模塊(異常來自HRESULT:0x8007007E)
此時若可以確定此dll就在bin目錄下,則說明是此dll調用別的dll,這時下載depends軟件,查看此dll缺少的dll。
筆者缺少的dll如下:
查看之後發現,缺的都是系統庫。
缺少系統庫,有兩種方法:
1、下載該dll,放在C:\Windows\System32或C:\Windows\SysWOW64目錄下,執行regsvr32 **.dll進行註冊。
2、直接安裝VC++運行庫,,筆者安裝了MSVBCRT_AIO_2018.10.28_X86 X64,問題解決。
二、報錯如下:未處理BadImageFormatException試圖加載格式不正確的程序。(異常來自HRESULT:0x8007000B)
1、這種錯誤通常是由於該dll是在32位系統下開發的,調用則是在64位系統下導致的。此時可以設置生成平臺為x86,或Any CPU自動選擇平臺,問題則可解決。
2、若缺少依賴的dll,也會報此錯誤。此時按照一中的方法下載安裝VC++運行庫。
C#調用C++的DLL錯誤解決方法