当32位应用程序运行时,系统将为它分配一个4GB的地址空间,加载模块会会分析该应用程序的输入信息,从中找到程序将要访问的动态链接库信息,在用户机器上搜索这些动态链接库,进而加载它们,搜索的顺序依次是
- 程序的执行目录
- 程序当前的目录
- 系统目录 如 C:\Windows\system32 C:\Windows\system C:\Windows
- path 环境变量中所列出的路径
程序当前的目录 指的是 exe文件所在那个目录下
程序的执行目录 指的是启动exe 文件的目录
对于一般来说双击程序启动,那么 程序的执行目录等同与程序当前的目录。还有一种就是通过 命令行启动
MainProgram.exe 依赖于 MathDll.dll。如果从以下目录启动将提示缺少dll。
因为MathDll.dll在上一级目录。所以这样可以正常启动
从上一级目录启动 MainProgram.exe。因为依赖库文件就在程序的执行目录下所以程序可以正常运行。