我的代码使用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