经典指数          
原因
1970
浏览数
0
收藏数
 

什么是DLL的延迟加载(Delay Load)?用延迟加载有什么好处?

     举报   纠错  
 
切换
1 个答案

当一个应用程序过多加载dll的时候,如果都是在启动时加载,那么无疑会减慢程序启动速度,而且会让初始的程序就占用很大内存

空间,但并不是所有的dll都是经常使用的,有些可能仅在特殊情况下才会使用到,比如你需要打印功能时,额外的一个dll用于负责

此事,但这项功能可能很少人使用,如果程序一启动就加载会有些浪费,谓词微软提供了延迟载入dll的功能,就是当你执行到某个

函数的时候,如果是首次执行,那么可以在用到时加载该dll,甚至可以在用完再重新释放卸载掉该dll

好处是:

 1)告诉编译器将该dll文件从可执行模块的导入段中去除,这样初始化的时候就不会加载该dll了,

 2)在可执行模块嵌入一个新的延迟载入段(即Delay import section称为.didata)来表示要从mydll。dll中导入哪些函数 

 3)通过让延迟载入函数的调用跳转到__delayLoadHelper2函数,来完成对延迟载入函数的解析。

 
切换
撰写答案