首页 > 解决方案 > 当前目录与加载应用程序的目录

问题描述

在 Microsoft 文档中,dll 加载顺序在以下链接下定义

https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

如果禁用 SafeDllSearchMode,则搜索顺序如下:

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

我不明白之间的区别

  1. 加载应用程序的目录
  2. 当前目录

假设应用程序安装在 %programfiles% 中,并且我在桌面上有一个快捷方式来启动它。在那种情况下,“加载应用程序的目录”是什么?当前目录必须是桌面,对吧?

非常感谢任何澄清。

标签: windowsdll

解决方案


推荐阅读