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

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值