dll延时加载技术解决exe和dll路径分离

1,436 阅读1分钟

dll延时加载技术解决exe和dll路径分离

window下dll的加载分为显示加载和隐式加载,其实还有另外一种介于显示和隐式加载之间的方式,延时加载,延时加载可以在exe主程序启动之后,第一次调用dll中封装的函数之前加载。

延时加载的优缺点

  • 优点

    • 可以在exe程序启动之后再去调用dll,这样可以在启动exe之后指定dll的加载路径
    • 分散dll较多较大集中加载速度慢问题
  • 缺点

    • 需要一个个指定哪些需要隐式加载
    • 需要在项目属性设置

步骤

  • vs项目属性中设置需要延时加载的dll
  • 按照隐式加载方式添加lib和头文件

  • 在第一次调用dll中的函数时指定加载dll的目录

    • 路径分离——延时加载目的是实现路径分离
	TCHAR path[MAX_PATH] = { "DllPath\\" };
	SetDllDirectory(path);