最简单的DLL

  静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。

  下面就是一个简单地动态链接库生成以及应用:

      首先,在(VS2010)新建一个(Win32 Console Application)项目,点击OK;

      其次,选择DLL、空项目,再点击finish;

      项目建好了,下面就可以在头文件添加一个名字为test.h的头文件,头文件里代码如下:

 

#ifndef __TEST_H__
#define  __TEST_H__
#include <iostream>
_declspec(dllexport) int  FunAdd(int x,int y);
#endif

 

    然后在源文件中添加一个名字为test.cpp的源文件,文件里代码如下:

 

#include "Test.h"
int FunAdd(int x,int y)
{
    return x+y;
}

 

    这样代码就写好了,然后要进行代码编译了,在编译之前一定要注意,要将Solution Configurations设置为Release,否则生成的DLL文件在没有装Vs2010的机器上会运行出错。

  然后点击build,在工程目录的release文件夹会生成test.lib和test.dll文件,这两个文件要留着备用。

      这样,一个动态链接库就建立好了,然后就是使用的时候了。

     

 

  同样,在(VS2010)新建一个(Win32 Console Application)项目,点击OK;

  然后点击Console application、空项目;

  添加一个头文件和一个源文件

     


#ifndef __DLL_TEST_H__
#define __DLL_TEST_H__ #pragma comment(lib,"test.lib") _declspec(dllimport) int FunAdd(int x,int y); #endif //源文件代码 #include<iostream> #include "dlltest.h" using namespace std; void main() { int a=1; int b=2; cout<<FunAdd(a,b); while(1); }

 


  然后将上面生成的test.lib和test.dll文件复制到该项目目录下;

  同样项目配置要选择Release,点击编译,然后到该项目的Release目录下可以找到一个可执行文件,然后将刚才生成的test.dll文件和该.exe放到一起就可以交付给别人使用了,运行结果是3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mu-tou-man/p/DLL.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值