dll延时加载技术解决exe和dll路径分离
window下dll的加载分为显示加载和隐式加载,其实还有另外一种介于显示和隐式加载之间的方式,延时加载,延时加载可以在exe主程序启动之后,第一次调用dll中封装的函数之前加载。
延时加载的优缺点
-
优点
- 可以在exe程序启动之后再去调用dll,这样可以在启动exe之后指定dll的加载路径
- 分散dll较多较大集中加载速度慢问题
-
缺点
- 需要一个个指定哪些需要隐式加载
- 需要在项目属性设置
步骤
- vs项目属性中设置需要延时加载的dll
-
按照隐式加载方式添加lib和头文件
-
在第一次调用dll中的函数时指定加载dll的目录
- 路径分离——延时加载目的是实现路径分离
TCHAR path[MAX_PATH] = { "DllPath\\" };
SetDllDirectory(path);