Regular DLL

来源:互联网 发布:如何提高六级听力 知乎 编辑:程序博客网 时间:2024/05/21 15:03
在建立MFC DLL工程时,向导会让我们选择DLL type。那么Regular DLL using shared MFC DLL和Regular DLL with MFC statically linked有什么区别呢?其实这是DLL的两种使用方式。被称为静态调用(隐式链接)和动态调用(显示链接)。

DLL没有静态一说,DLL叫做动态链接库,都是动态的,不过有隐式加载和显式加载这两种不同的加载方式。区别在于,隐式加载的话,DLL的载入是先于进程本身的,如果DLL不存在或是加载出错,那么程序根本就不能运行,一般会出现进程初始化错。显式加载比这个灵活,在需要时才加载,如果加载不成功,程序也还可以通过别的方法进行控制。并没有统一的规定什么情况下用隐式、什么情况下用显式,一般情况下,两者都可以用。隐式调用的方法比较简单,但DLL改变后,应用程序须从新编译。并且,所有所调用的DLL在应用程序加载的同时被加载到内存中,当应用程序调用的DLL比较多时,装入的过程十分慢。具体在使用时,对于“小应用”用隐式加载就行了,因为比较简单,但是如果DLL较多,或是在某些情况下要调用某个DLL,某些情况下不用调用,那么用显式调用就灵活多了。