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

C#呼叫C++的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++執行庫。