我目前正在開發一個帶有SDL的C++應用程序,它需要DLL才能工作。現在,它只會在與程序相同的文件夾中找到DLL。如何使程序在名爲「libs」的子目錄中搜索。C++設置的dll搜索位置
回答
如果使用加載時間鏈接,則需要將DLL放在DLL搜索路徑中。這是記錄在這裏:Dynamic-Link Library Search Order。通常這需要您將DLL文件夾添加到PATH
環境變量。現在,向PATH
環境變量添加一個文件夾是解決問題的重量級解決方案。你當然不想這樣做。
另一方面,如果您切換到運行時鏈接,那麼您可以將DLL的完整路徑傳遞到LoadLibrary
。您可以撥打GetModuleFileName
查找可執行文件的文件名,然後拉出目錄,並添加\libs\MyDll.dll
。但是,運行時鏈接的最大缺點是您需要爲導入的每個函數使用GetProcAddress
。
這些選項都不是特別有吸引力。我的建議是改變你的建議設計。將可執行文件所需的所有DLL放入與可執行文件相同的目錄中。
在Environment Variables
中添加dll文件夾路徑(請注意其中的路徑由;
分隔)。
我希望這是一個通用設置,這樣即使我分發了這些文件,該程序仍然會知道在哪裏查找dll。 – tVoss42
@ tVoss42這將是一個通用設置,至少對於您的電腦而言。 – herohuyongtao
- 1. 編程設置DLL搜索路徑
- 2. 位置搜索
- 3. RoR位置搜索
- 4. 搜索spesific位置
- 5. 搜索基於位置的搜索
- 6. 配置搜索設置
- 7. 按位置搜索,二叉樹C++
- 8. 基於位置的搜索
- 9. 設置A *搜索
- 10. 設置Sharepoint搜索?
- 11. Regex.CompileToAssembly如何設置.dll文件位置
- 12. Osclass搜索主頁搜索位置也
- 13. 是否可以看到.DLL正在搜索文件的位置?
- 14. C#搜索和設置節點值
- 15. C++設置搜索對元素?
- 16. 設置pyodbc搜索odbcinst.ini文件的位置
- 17. C#設置dependentAssembly爲DLL
- 18. 獲取設置位的位置C
- 19. Twitter地理位置/搜索
- 20. 在Solr搜索位置
- 21. AngularJS $位置搜索混淆
- 22. 位置搜索數據庫
- 23. 位置感知搜索
- 24. Drupal搜索Gmap和位置
- 25. Android位置搜索錯誤
- 26. Textmate2默認搜索位置
- 27. Fedex位置搜索請求
- 28. PostGIS:搜索幾何位置
- 29. Solr位置方面搜索
- 30. Google鄰居位置搜索
爲什麼不能建立快捷方式? –
爲什麼不將DLL複製到'C:\ WINDOWS \ system32'? –
@KerrekSB,不妨將它複製到PATH然後。 – ManuelH