静态dll和动态dll(创建、区别、调用方式)

来源:互联网 发布:新电脑必备软件 编辑:程序博客网 时间:2024/05/16 08:27

1.创建dll

   (1)创建mfc的*.dll项目,直接在*.h文件下写全局函数

              int GetnSize(int n);

    (2)在*.cpp中写

             int GetnSize(int n)
             {
              return n + 1;
             }

     (3)*.def中写

               EXPORTS
                    GetnSize

2.两者的区别

   静态dll使用方便,针对性强、静态调用、不可以动态、共享使用。直接链接到exe文件

   动态dll可以动态、共享使用,有利于多个程序共同使用,节约资源。不链接到exe文件,只建立一个接口

3.调用方式

   (1)静态调用方式(两步)

     第一步:加载*.lib。  有两种方式,直接使用#pragma comment(lib, "*.lib")

                                                                  或者

                                                                  “属性-链接器-输入-附加依赖项”填写*.lib

    第二步:在调用的cpp文件中#include "*.h"

   (2)动态调用方式

      假设函数的声明为:int GetnSize(int n);

      //函数指针声明

      typedef int (WINAPI MESSAGE)(int n);

      MESSAGE *pMessage = 0;

      //加载*.dll

      HINSTANCE hDLLDrv = LoadLibrary("*.dll");

      //获取message函数的指针

      if(hDLLDrv)

      {

       pMessage = (MESSAGE *)GetProcAddress(hDLLDrv, "GetnSize");

      }

      然后就可以这样调用函数了:

      int nSize = pMessage(1);

原创粉丝点击