VC创建DLL动态链接库及其调用

1.1 创建dll项目





1.2 为dll项目编写源文件



头文件dllDemo.h
extern "C" _declspec(dllexport) int Sum(int a,int b);//加法函数。
extern "C" _declspec(dllexport) int Max(int a, int b);//取较大值函数

extern "C" _declspec(dllexport) int Min(int a, int b);//取较小值函数



源文件dllDemo.cpp

#include "dllDemo.h"
extern "C" _declspec(dllexport)int Sum(int a, int b)
{return a+b;}
extern "C" _declspec(dllexport)int Max(int a, int b)
{
    if(a>=b)
        return a;
    else
        return b;
}
extern "C" _declspec(dllexport)int Min(int a, int b)
{
    if(a>=b)
        return b;
    else
        return a;
}
1.3 生成dll文件

编译源文件,如果没有出现错误提示,那么,在项目文件根目录的Debug文件夹内会生成

一个dll文件“dllDemo.dll”。

 
 

2 DLL调用


2.1 用C++调用显式链接




新建一个Win32的控制台程序进行显式调用:


1. 新建“UseDll”的Win32控制台程序项目


2. 新建cpp文件“UseDll.cpp”


3. 将在第一节中,在Debug目录下编译生成的“dllDemo.dll”(显式调用时只需要这一


个文件就够了)文件复制到“UseDll”项目下的Debug文件夹根目录下


4. 在“UseDll.cpp”文件中编写以下代码对dll中的函数进行显式调用 

代码:
#include <iostream>
#include< windows .h>
using namespace std;
void main(void)
{
 typedef int(*pMax)(int a,int b);
 typedef int(*pMin)(int a,int b);
 pMax Max=NULL;
 pMin Min=NULL;
 HINSTANCE hDLL;
 hDLL=LoadLibrary("dllDemo.dll");//加载动态链接库dllDemo.dll文件;
 Max=(pMax)GetProcAddress(hDLL,"Max");
 Min=(pMin)GetProcAddress(hDLL,"Min");
 if (Max)//如果取出函数成功,则执行下面的语句
 {
  int A=Max(5,8);
  cout<<"比较的结果为"<<A<<endl;
 }
 if (Min)
 {
  int B=Min(5,8);
  cout<<"比较的结果为"<<B<<endl;
 }
 FreeLibrary(hDLL);//卸载MyDll.dll文件

}

5、运行效果如下:




原网站上的文章里面代码有点小小的错误,在这里我已经修改好了。可能还存在不足之处,望多包涵!奋斗

 

 

//

 转载:http://www.2cto.com/kf/201205/132151.html


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值