我的代碼使用LoadLibraryA(「someDLL.dll」);它開始搜索文件someDLL.dll的路徑是什麼?另一個問題:LoadLibraryA函數是否區分大小寫?我的意思是如果我有SomeDLL.dll它不會加載它?LoadLibrary A在哪裏查找文件?
0
A
回答
2
LoadlLibrary
文章指定備註搜索順序:
如果lpFileName的對象不包括路徑和存在具有相同基名和擴展名, 返回的句柄功能不止一個 加載的模塊首先加載的模塊。
如果在lpFileName參數 中未指定文件擴展名,則附加缺省庫擴展名.dll。但是,文件名 字符串可以包含尾隨點字符(。),以指示 模塊名稱沒有擴展名。如果未指定路徑,則功能 將搜索加載的模塊,其基本名稱與要加載的模塊的基本名稱 相匹配。如果名稱匹配,則加載成功。 否則,該功能將搜索該文件。 [...]
有關DLL搜索順序的更多信息,請參閱Dynamic-Link Library Search Order。
文件名不區分大小寫,所以NTFS和FAT文件名是。這是fundamental rule不承擔大小寫:
命名約定
以下基本規則使應用程序能夠創建和處理有效的名稱爲文件和目錄,無論文件系統:[...]
不要假定區分大小寫。
2
MSDN庫文章Dynamic-Link Library Search Order指定當SafeDllSearchMode啓用桌面應用程序的搜索順序,這是自Windows XP SP2默認:
- 的目錄從其中加載應用程序。
- 系統目錄。使用GetSystemDirectory函數獲取此目錄的路徑。
- 16位系統目錄。沒有獲得該目錄路徑的函數,但它被搜索。
- Windows目錄。使用GetWindowsDirectory函數獲取此目錄的路徑。
- 當前目錄。
- PATH環境變量中列出的目錄。請注意,這不包括App Paths註冊表項指定的每個應用程序路徑。計算DLL搜索路徑時不使用App Paths鍵。
相關問題
- 1. DLL在哪裏調用LoadLibrary?
- 2. PresentationTraceSources.Refresh在哪裏查找app.config文件?
- 3. Python首先在哪裏查找文件?
- 4. 紅寶石在哪裏查找文件?
- 5. qmake在哪裏查找pri文件?
- 6. IIS在哪裏查找文件
- 7. npm在哪裏查找package.json文件?
- 8. .jar文件在哪裏查找輸入文件?
- 9. 查找控件在哪裏運行javascript
- 10. 在哪裏找到卸載文件
- 11. 在哪裏可以找到log4j.properties文件
- 12. gcc編譯器在編譯時查找頭文件在哪裏?
- 13. flex如何知道在哪裏查找.swz文件?
- 14. python在哪裏查找腳本中的文件?
- 15. 集市在哪裏查找規則文件?
- 16. 指定N目錄在哪裏查找輸入文件
- 17. ResourceBundle.getBundle(「ResourceFile」,new Locale(「us」,「US」))在哪裏查找文件?
- 18. Maven在哪裏查找本地settings.xml文件?
- 19. 如何指定git在哪裏查找其配置文件?
- 20. Visual Studio在哪裏查找C++頭文件?
- 21. Python在哪裏查找庫二進制文件?
- 22. 什麼是'.R'文件夾以及在哪裏查找它?
- 23. Linux內核在哪裏查找可執行文件
- 24. Java Card「Converter」工具在哪裏查找EXP文件?
- 25. gcc在哪裏查找C和C++頭文件?
- 26. 查找htdocs路徑,無論文件存儲在哪裏
- 27. Compass在哪裏查找要導入的文件?
- 28. EmberCLI - 文件更改檢測停止工作 - 在哪裏查找?
- 29. Ruby的has_header方法在哪裏查找頭文件?
- 30. Stage 2.1 Play應用程序在哪裏查找配置文件?
如果我沒有記錯,在線文檔會談論很多關於搜索策略。我會看那裏。就區分大小寫而言,如果在文檔中沒有明確說明,那麼測試自己應該是一件容易的事情...... – tmpearce