LoadLibrary A在哪里查找文件?

我的代码使用LoadLibraryA(“someDLL.dll”); 什么是它开始search文件someDLL.dll的path?另一个问题:是LoadLibraryAfunction区分大小写?我的意思是如果我有SomeDLL.dll它不会加载它?

Solutions Collecting From Web of "LoadLibrary A在哪里查找文件?"

LoadlLibrary文章中指定搜索顺序备注:

如果lpFileName不包含路径,并且有多个具有相同基本名称和扩展名的已加载模块,则该函数将返回首先加载的模块的句柄。

如果在lpFileName参数中未指定文件扩展名,则会附加默认库扩展名.dll。 但是,文件名称字符串可以包含尾随点字符(。),以指示模块名称没有扩展名。 当没有指定路径时,函数搜索加载的模块,其基本名称与要加载的模块的基本名称相匹配。 如果名称匹配,则加载成功。 否则,该功能将搜索该文件。 […]

有关DLL搜索顺序的更多信息,请参阅动态链接库搜索顺序 。

文件名不区分大小写,所以NTFS和FAT文件名是。 不区分大小写是基本规则 :

命名约定

以下基本规则使应用程序能够创建和处理文件和目录的有效名称,而不管文件系统如何:[…]

不要假定区分大小写。

当启用SafeDllSearchMode时,MSDN Library文章Dynamic-Link Library Search Order指定桌面应用程序的搜索顺序,这是Windows XP SP2的默认值:

  1. 加载应用程序的目录。
  2. 系统目录。 使用GetSystemDirectory函数获取此目录的路径。
  3. 16位系统目录。 没有获得这个目录的路径的函数,但它被搜索。
  4. Windows目录。 使用GetWindowsDirectory函数获取此目录的路径。
  5. 当前目录。
  6. PATH环境变量中列出的目录。 请注意,这不包括应用程序路径注册表项指定的每个应用程序路径。 计算DLL搜索路径时不使用App Paths键。