C++之动态链接库的封装与使用

     学习动态链接库前参考了这两个链接:

http://blog.sina.com.cn/s/blog_7939cf980102v052.html

http://www.cnblogs.com/lhbssc/archive/2012/02/08/2342853.html
第一个简单的动态链接库封装的是冒泡排序法

环境:VS2010

1、封装动态链接库

首先打开VS2010新建一个win32项目(这里命名为maopao),应用程序类型选择DLL,直接点击完成即可。

//maopao.cpp



#include "stdafx.h"

//关键在于加入这一句,意为将C语言下的程序导出为DLL

extern "C"_declspec(dllexport) void maopao(int *p,int count);

void maopao(int *p,int count)

{

      int temp=0;

      for(int i=1;i<count;i++)

      {

          for(int j=count-1;j>=i;j--)

        {

            if(p[j]>p[j-1])

            {

                temp=p[j];

                p[j]=p[j-1];

                p[j-1]=temp;

            }

        }

      }

}

编译运行,即可在Debug目录下生成maopao.lib和maopao.dll

至此冒泡排序的动态链接库创建完毕。

2、调用动态链接库

接着就要考虑如何调用了

还是VS2010,新建一个控制台应用程序,并把第一步生成的库文件引入到项目中

引入方式:

     项目->属性->链接器->常规->附加库目录   加入库目录

     项目->属性->链接器->输入->附加依赖项   加入库名称

再者便是直接调用了

啥也不说,上代码

#include<iostream>

#include<time.h>

using namespace std;

//将export改为import即导出变导入即可

extern "C"_declspec(dllimport) void maopao(int *p,int count);

int main()

{

  int a[10];

  srand(time(0));

  for(int i=0;i<10;i++)

      a[i]=rand()%50;

  maopao(a,10);

   for(int i=0;i<10;i++)

       cout<<a[i]<<endl;

   getchar();//为方便调试

   return 0;

}

输出结果如下,为十个随机数排序后结果

DLL包括动态和静态两种,大型应用程序中一般使用动态链接库

本文用到的DLL同样没涉及静态知识

相信以后还会有机会接触

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值