我有一個內置於Visual Studio(2008)的C++應用程序並鏈接到Boost DLL。在調試時,似乎需要將Boost DLL複製到debug文件夾中,以便我在IDE中運行的exe可以鏈接到它。我可以使用構建後步驟來複制DLL,但我想知道在Visual Studio中是否有一個設置可以在調試時爲DLL提供額外的搜索路徑?避免將第三方DLL複製到調試文件夾中
6
A
回答
4
這裏有一個輕微的誤解。在調試時,Visual Studio本身不直接控制將DLL加載到應用程序中。 DLL的加載由操作系統直接控制。當請求加載時,操作系統搜索一組感興趣的目錄。
在VS影響DLL的加載的主要方式是憑藉它們複製到構建輸出目錄的。這通常是運行應用程序的目錄,因此是操作系統搜索必要DLL的路徑之一。
操作系統搜索的目錄由幾個項目控制。最容易改變的是環境變量(我相信LIBPATH)。在調試模式下,您可以更改此環境變量以指向您的其他目錄,並從那裏加載DLL。
雖然沒有什麼可以在Visual Studio中直接設置。
1
有很多的隱式鏈接到EXE在Windows選項的DLL沒有。由於將DLL與EXE存儲在同一文件夾中,因此可以將其存儲在PATH環境變量中列出的目錄中。只有c:\ windows \ system32保證列出,你不能合理地使用該文件夾。一個改變系統環境的安裝程序可以工作,但仍然不合理。
唯一真正的選擇是存儲在WinSxS文件並排端緩存的DLL。您需要編寫一個清單,以便Windows可以找到該DLL。你需要編寫一個安裝程序把DLL放入WinSxS中。鑑於文檔的質量,你需要真的,真的想這樣做。
如果這只是再調試的考慮也許它真的不是什麼大不了的改變你的dev的機器上的路徑。使用控制面板,系統小程序。
1
您可以通過設置環境變量來擴展Visual Studio中的PATH。這裏有一個很好的解釋: How do I set a path in visual studio?
相關問題
- 1. 如何避免複製第三方C++ dll?
- 2. 將第三方程序集複製到子文件夾
- 3. 限制Visual Studio 2010調試第三方DLL文件
- 4. 在Visual Studio中調試第三方DLL?
- 5. 如何避免DLL文件複製到其他PC
- 6. 從調用第三方DLL
- 7. 如何將第三方Windows DLL組織到我的應用程序文件夾中的子文件夾中?
- 8. 在第三方DLL中調用方法
- 9. 發佈dll - 複製到bin文件夾
- 10. 將文件夾複製到文件夾
- 11. iis7託管wcf服務:避免將dll放在system32文件夾
- 12. 將源文件夾和目標文件夾之間的差異複製到第三個文件夾
- 13. 第三方DLL
- 14. 避免第三方腳本的window.location.reload()
- 15. 在Mathematica中調用第三方DLL
- 16. 共享第三方DLL的NuGet或程序集文件夾?
- 17. 如何避免第三方框架之間的重複符號
- 18. 複製.dll文件到同一文件夾中,使用CMake的
- 19. qmake:乾淨的方式將qt dll複製到輸出文件夾中
- 20. 爲什麼第三方庫「ChilkatDotNet4x64」未被複制到輸出文件夾?
- 21. 避免定製複製目錄功能複製文件夾時爲自己
- 22. 避免在Python文件夾中重複文件名
- 23. 將.tar.gz文件複製到文件夾
- 24. 將文件複製到文件夾
- 25. 將文件夾從文件夾複製到文件夾python
- 26. 如何將MS office dll複製到本地文件夾
- 27. 使用免費的第三方DLL將word轉換爲pdf
- 28. 使用java 7複製文件方法將文件複製到文件夾
- 29. 在Eclipse中調試時避免方面
- 30. 避免衝突,如果複製文件
http://stackoverflow.com/questions/1776060/how-to-make-visual-studio-copy-dll-to-output-directory – 2010-01-26 16:52:36
引用的問題涉及到使用後期製作步驟,我希望避免。 – Permaquid 2010-01-26 17:17:54
JaredPar提供了控制環境的提示,而不是尋找一些Visual Studio範圍內的庫搜索位置。事實證明,有一個Visual Studio設置,通過(顯然)向PATH環境變量添加另一個路徑,提供了我想要的內容:Configuration Properties> Debugging |環境。這是每個項目,您可以使用環境變量。唯一缺少的部分是文檔,它描述了我想要添加的調試環境如何合併到現有的調試環境中。 – Permaquid 2010-01-27 03:47:05