2012-10-15 42 views
2

現狀:錯誤:無法加載DLL'.dll':無法找到指定的模塊。 (來自HRESULT的異常:0x8007007E) - 這個錯誤是什麼?

我試圖運行CharLS JPEG-LS Compression algorithm implementation

有在哪裏可以下載一個C#VS 2010解決方案的網站源代碼。在解決方案中有2個C#類庫項目,1個非託管VC++項目和1個C#控制檯應用程序。控制檯App調用其中一個類庫,`使用CharLS;',並且該特定庫引用非託管VC++項目。控制檯應用程序在調試模式下完美工作。

問題:

但是,當我編譯爲「釋放」的控制檯應用程序,並運行.exe文件(可執行文件),當特定功能的過程中被調用時,它給我這個錯誤:

Error: Unable to load DLL 'CharLS.dll' : The specified module could not be found. (Exception from HRESULT: 0x8007007E)

我也試着創建另一個項目,並從那裏引用類庫,但我得到了同樣的錯誤。

我試過在網上閱讀其他解決方案,但他們沒有幫助我。

+3

找不到CharLS.dll依賴項之一 - 可能是因爲更改當前目錄。在Dependency walker中學習dll依賴關係http://www.dependencywalker.com/ –

+0

您是否檢查開發計算機上的路徑上是否存在文件「CharLS.dll」?如果是這樣,那麼將其與發行軟件一起部署(也在路徑中)。或者,它是一個註冊文件(regsvr32)?如果是這樣,請部署並註冊它。 – Vicki

+0

你從來沒有提到過「,我確保將DLL複製到bin \ Debug目錄」。所以先從那裏開始。 SysInternals的ProcMon實用工具可以顯示其他DLL可能丟失的內容。 –

回答

0

在發佈模式下運行之前,您是否已(重新)構建過項目?看起來你沒有,釋放輸出不包含這樣的lib。無論如何檢查它。

+0

我已經嘗試(重新)建立無數次了。同樣的錯誤先生。 – user919789

+0

@ user919789您是否嘗試過整個解決方案的清理和重建,並結合關閉和重新打開Visual Studio?它通常會爲我修復錯誤。 – Seph

0

確保它絕對在服務器上註冊。你是否也有應用程序池(假設IIS7 +)設置爲允許32位進程?

2

一些原因這個錯誤可能是:

  1. 您正在爲「的DllImport」屬性的「入口點」屬性名稱不與您從本機組件導出函數匹配。

  2. 另一個原因可能是缺少DLL本身/或任何其依賴的(使用依賴學步車和檢查)

  3. 第三個原因可能是它可能是調試/發行版本不匹配。

+1

調試/發佈版本不匹配的榮譽(和+1)。我正在測試一個項目部署,並沒有打擾將解決方案配置切換到「發佈」。 –

相關問題