在Windows DLL搜索在Windows DLL搜索(DLL search on windows

2019-05-12 07:25发布

在Linux上,我们有LIBRARY_PATHLD_LIBRARY_PATH为了环境变量程序搜索库。 我们有没有在Windows类似的事情? 尤其是Windows 7?

另外,我想知道DLL使用(在那里把它们,使用ENVS与否等)的最佳做法,因为我想在Windows上工作就像每个人都没有,而不是自己甘怠惰的解决方法:)

Answer 1:

这MSDN文章介绍了默认的搜索顺序。 我引用:

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

(1),如果你对DLL的存根库静态链接的,我觉得“通过lpFileName的对象指定的目录”是进程的exe文件的路径。



Answer 2:

看看帮助的调用LoadLibrary和CreateProcess的功能。 这些描述用于查找DLL文件的路径,以及如何对其进行修改。



Answer 3:

它看起来currentDir第一,然后WINDIR和SYSTEMDIR也是在你的路径



文章来源: DLL search on windows