Dynamic-Link Library Redirection
通常情况下,应用程序加载DLL时的搜索路径顺序如下:
- The directory from which the application loaded.
- The system directory.
- The 16-bit system directory.
- The Windows directory.
- The current directory.
- The directories that are listed in the PATH environment variable.
当程序目录下有 “应用程序名.local”时,会优先在该目录下进行搜索:
假设要搜索的动态库名字为 mydll.dll, 当前程序的全路径为 c:\myapp\myapp.exe,
如果当前目录有一个 “myapp.exe.local” 的文件,并且有一个mydll.dll,
LoadLibrary 函数指定的路径为 “c:\program files\common files\system\mydll.dll”
则此时的搜索路径以当前目录为先,最终加载的是 c:\myapp\mydll.dll,只有在这个目录下没有时,才会加载 “c:\program files\common files\system\mydll.dll” 。