2010-01-22 68 views
98

我開發了一個依賴於DLL文件的應用程序。當我調試我的應用程序中,applicationwould抱怨說:如何在Visual Studio中設置DLL文件的路徑?

「此應用程序未能啓動,因爲xxx.dll沒有被發現。」

所以我必須將DLL文件複製到與我的.vcproj文件相同的目錄中。

有沒有辦法將項目設置爲在(最好是)某個相對路徑或(不是首選)某個絕對路徑中查找DLL文件?

類似的概念,我們如何在項目設置中設置包含和庫路徑。

我的意思是,當我調試我的應用程序(打F5)上面的錯誤會彈出。

回答

140
  1. 轉到項目屬性(Alt + F7)
  2. 在調試時,向右邊看
  3. 有一個環境領域。
  4. 那裏(相對於vcproj文件夾)添加您的相對路徑即.. \一些框架\ lib中通過附加PATH=%PATH%;$(ProjectDir)\some-framework\lib或再次前面加上的路徑PATH=C:\some-framework\lib;%PATH%
  5. 按F5鍵(調試),它應該工作。
+13

環境字段採用NAME = VALUE分號分隔的對。附加到PATH變量以使VS調試器搜索DLL的其他位置:PATH =%PATH%; $(ProjectDir)lib – 2012-12-08 04:06:53

+0

您的解決方案適用於我。謝謝 – esmitt 2017-10-04 10:07:34

+0

有沒有類似的發佈版本呢? – Narek 2017-11-22 09:50:38

2

另一種可能性是將調試選項下的Working Directory設置爲具有該DLL的目錄。

編輯:我打算用批處理文件來啓動Visual Studio(並在批處理文件中設置PATH變量)。然後做了一些搜索,發現這個完全相同的問題在不久前被問到了in this post。答案建議批處理文件選項以及顯然可以完成這項工作的項目設置(我沒有測試它)。

+0

如果我依賴2個dll,每個人都在自己的目錄中? (我簡化了我的問題) – sivabudh 2010-01-22 18:46:45

+0

我不認爲有可能使這個解決方案適用於多個目錄。 – 2010-01-22 19:27:24

7

調用LoadLibrary()時,加載程序使用的搜索路徑可以使用SetDllDirectory()函數進行更改。所以你可以調用它並在加載它之前添加到你的依賴的路徑。請參閱DLL Search Order

6

去通過項目屬性 - >引用路徑

然後用文件夾添加DLL的

+2

請不要在多個問題上發佈相同的答案。發佈一個很好的答案,然後投票/標記以重複關閉其他問題。如果問題不是重複的,*定製你對這個問題的答案。* – durron597 2015-09-03 03:00:00

+1

它不起作用 – 2017-10-05 12:20:08

+0

迄今爲止最好的答案:) – Rachmaninoff 2017-10-23 20:17:33

0

我知道這個問題已經在多年前回答,但對於那些像我這樣誰需要改變在調試器啓動應用程序,請更改「項目屬性」 - >「調試」下的命令屬性。

相關問題