1. 程式人生 > >C#調用C++的DLL錯誤解決方法

C#調用C++的DLL錯誤解決方法

.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錯誤解決方法