DLL好处有:
1. 节省内存,多个进程调用DLL中的代码,DLL中的代码只有一份拷贝,节约了内存(数据则不同,DLL中的全局数据可以共享,也可以Copy-On-Write。局部数据则是每个进程中的DLL实例都有一份)
2. 程序模块化。可以将程序的不同部分独立出来,分成不同的模块,方便维护。在这个基础上面可以派生出其他的用途,如升级程序有时候只需替换DLL等等
3. 可重用。DLL中的代码可以被多个程序同时使用
4. 和具体语言无关。VB写的DLL,VC就可以调用。(不过具体情况下会有一些复杂的因素在里面)

解决方案 »

  1.   

    DLL file:
    //文件:lib.h#ifndef LIB_H
    #define LIB_H
    extern "C" int add(int x,int y);   //声明为C编译、连接方式的外部函数
    #endif//文件:lib.cpp#include "lib.h"
    int add(int x,int y)
    {
     return x + y;
    }  编译这个工程就得到了一个.lib文件,这个文件就是一个函数库,它提供了add的功能。将头文件和.lib文件提交给用户后,用户就可以直接使用其中的add函数了。  标准Turbo C2.0中的C库函数(我们用来的scanf、printf、memcpy、strcpy等)就来自这种静态库。  下面来看看怎么使用这个库,在libTest工程所在的工作区内new一个libCall工程。libCall工程仅包含一个main.cpp文件,它演示了静态链接库的调用方法,其源代码如下:
    #include <stdio.h>
    #include "..\lib.h"
    #pragma comment( lib, "..\\debug\\libTest.lib" )  //指定与静态库一起连接int main(int argc, char* argv[])
    {
     printf( "2 + 3 = %d", add( 2, 3 ) );
    }