2015-11-21 59 views
0

我有安裝了VisualStudio 2005和VisualStudio 2013的環境。我對一些項目有些奇怪的情況。我用VS2013編譯這些項目,當我嘗試通過資源管理器或命令行啓動它們時,出現錯誤 - 「程序無法啓動,因爲MSVCR80.dll丟失...」。爲什麼使用msvcr120編譯msvcr80?使用VS2013編譯的應用程序需要VS2005運行時

我試了一下:

  1. 認沽MSVC * 80.dll到目錄中的可執行文件。我得到了運行時錯誤「R6034。一個應用程序試圖加載C運行時庫不正確......」

  2. 使用Dependency Walker檢查二進制相關性。我看到該二進制文件對VS2013運行時存在依賴關係,並且沒有提及msvcr80.dll

  3. 啓動了帶有空PATH的二進制文件。我沒有產生積極的影響。
  4. 在另一個「乾淨」電腦上啓動二進制文件。它和vs2013運行時一起工作。

這怎麼可能?

+0

有沒有通過一些其他DLL的間接依賴? –

+0

我沒有看到它通過Dependcy Walker – Yury

+0

使用谷歌,它似乎說DLL也是由Office 2010使用。所以根據你的應用程序做什麼可能會有一個間接的依賴。 –

回答

0

謝謝大家,你是對的。我只是忘了,我已經安裝了舊版本的產品。它在後臺啓動並使用舊版本的庫。所以當我運行我的新應用程序時,它試圖使用已加載的庫。用另一種方式,Dependecy walker沒有檢查已經加載的庫,只在PATH中查找。

MSDN有關加載DLL鏈接 - https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682586(v=vs.85).aspx

相關問題