假定安全DLL搜索模式启用(这是缺省设置),搜索顺序如下:
- 应用程序所在的路径。
- Windows SYSTEM目录。
即,通过调用GetSystemDirectory函数获取的目录。 - Windows目录。
即,通过调用GetWindowsDirectory函数获取的目录。 - 当前目录
- PATH环境变量指定的路径。
这个地方好奇怪的是windows使用PATH来指定库的搜索路径,难道windows任务DLL就是EXE,EXE就是DLL吗?作为Unix程序员好像很不理解。
另外如果查看exe依赖的dll:
- 使用命令行dumpbin /depends <exe>
- 使用工具应用Dependency Walker (depends.exe)来。
甚至只能检查静态依赖,无法检测动态依赖,当前哪一个具体的DLL加载出问题,完全没有ldd命令这么好用。
网友评论