启动一个可执行模块的时候,操作系统的加载程序会先为进程创建虚拟地址空间,接着把可执行模块映射到进程的地址空间之中。之后加载程序会检查可执行模块导入段,试图将所需的dll进行定位并将他们映射到进程的地址空间中。
由于导入段只包含dll的名称,不含dll 的路径,因此加载程序必须在用户的磁盘上搜索dll,加载程序的搜索路径为:
1. 包含可执行文件的目录
2. Windows的系统目录
3. 该目录可以通过GetSystemDirectory得到
4. Windows目录,该目录可以通过System子目录
5. 进程的当前目录u,
6. PATH环境变量中所列出的目录