2014-10-18 97 views
0

我有一個使用libcurl.dll(在運行時動態鏈接)的Visual Studio 2008項目。我想將libcurl.dll更新到更新的版本。我手動更換了文件系統中的dll,清理並構建瞭解決方案。但在調試過程中,該項目無法找到libcurl.dll在Visual Studio中替換依賴項DLL

編輯:新的DLL是用libssh2的附加依賴項構建的。爲了使用新的DLL,我應該做什麼修改?

什麼是在Visual Studio 2008中升級DLL的正確方法?

回答

2
  • 使用Dependency Walker找到任何DLL相關的問題。
  • 檢查32位/ 64位系統路徑是否導致問題。
  • 檢查相關DLL是否導致任何問題,或者DLL的DllMain返回失敗。
+0

謝謝。依賴DLL是由libssh2的附加依賴構建的。我會更新這個問題來包含這一點。需要做些什麼才能使其發揮作用? – 2014-10-18 07:39:07

1

DLLs以與可執行文件相同的方式加載。它們應該位於相同的目錄中,或者應該可以通過%PATH%進行訪問。

按照這些原則,VS會找到它。很有可能你搞砸了別的東西。

當你替換DLL時,不需要重建。

當你buid,使用頭文件和.lib文件。如果你的新DLL有相同的條目,那麼你可以簡單地替換正確的DLL文件並重啓應用程序。

如果你的新DLL有不同的條目或不同類型的參數,那麼你需要新的頭文件,新的.lib文件,然後你需要重新編譯。

+0

謝謝。我會修改這個問題。新的DLL是使用不同類型的參數構建的。新的DLL已經建立與libssh2的依賴關係。我需要做什麼才能使其發揮作用? – 2014-10-18 07:36:08

+1

很難從可用的信息中確切地說出發生了什麼。使用其他答案的建議。您也可以嘗試:將您的exe文件和所有必需的DLL放到一個目錄中並嘗試運行。這可能有助於將DLL搜索方面與其他問題(如DllMain返回碼)隔離開來。 – 2014-10-18 16:17:40

+0

你說得對。我嘗試使用Dependency Walker,事實證明,我必須放置依賴的DLL。謝謝! – 2014-10-18 16:31:30

相關問題