You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

程序如何查找未随自身安装但存在于计算机上的DLL?

Windows 系统 DLL 搜索逻辑说明

以下为Windows XP SP2及之后系统默认开启安全DLL搜索模式下的标准搜索顺序:

  • 程序exe文件所在的目录
  • 系统核心目录,即C:\Windows\System32,可通过GetSystemDirectory Win32 API获取准确路径
  • 16位系统兼容目录,即C:\Windows\System,当前64位系统几乎不会触发该路径的搜索
  • Windows安装目录,即C:\Windows,可通过GetWindowsDirectory Win32 API获取准确路径
  • 进程当前工作目录,即启动程序时所在的目录,比如在D:\test路径下通过命令行启动C:\myapp\demo.exe,则工作目录为D:\test
  • 系统环境变量PATH中配置的所有目录,包含系统级PATH、用户级PATH,以及进程启动时继承的会话级PATH路径

如果手动关闭了安全DLL搜索模式,搜索顺序会将「进程当前工作目录」调整到系统目录之前,具体为:exe所在目录 -> 工作目录 -> System32目录 -> System目录 -> Windows目录 -> PATH路径。

还有几种特殊场景不会走上述标准搜索逻辑:

调用LoadLibrary加载DLL时传入了完整绝对路径,系统会直接加载指定路径的DLL,不触发搜索流程
目标DLL已经被加载到当前进程内存中,系统会直接复用已加载的实例,不会重新搜索
目标DLL属于系统已知DLL(记录在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs项下),系统会直接从System32目录加载,不会遍历其他搜索路径,常见的kernel32.dll、user32.dll都属于已知DLL范畴

内容的提问来源于stack exchange,提问作者jojo_Aero_smith_the_dummy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:06:03