DLL学习系列之二:非MFC动态链接库

 使用动态链接库的好处这里就不提了,使用动态链接库往往需要两个文件一个引入库.lib文件,一个.dll文件。其中引入库文件包含导出函数和变量的名字,.dll文件中保存实际的函数和数据。在编译的时候,只将.lib文件链接.exe文件中去。.dll文件在运行时才被链接,所以叫做动态链接库。
      动态链接库有两种加载方式:隐式加载和显示加载。
      下边给出一个隐式加载的例子:
      新建一个Win32 Dynamic-Link Library Project,含有DLL.h和DLL.cpp两个文件:
// DLL.h
#ifndef DLL_H
#define  DLL_H
extern   " C "   int  __declspec(dllexport)add( int  x,  int  y);
#endif

 

// DLL.cpp
#include " DLL.h "

int  add( int  a,  int  b)
{
   
return a+b;
}

编译生成两个文件DLL.lib和DLL.dll。下面测试这个DLL。新建一个工程DLLTest。

 

 

// DLLTest.cpp
#include  < stdio.h >
extern   " C "  _declspec(dllexport)add( int  a,  int  b);

int  main()
{  
    printf(
"2+3=%d/n", add(2,3));
    
return 0;
}

然后将DLL.lib和DLL.dll两个文件拷贝到工作目录,并添加到工程文件中。如果从编译器中运行程序就要在工作目录下包含DLL.dll,如果从dubug文件夹下运行exe文件就必须在exe文件同目录下含有DLL.dll。DLL.lib文件一定放在工作目录下,因为是要和其他文件链接的。如果链接报错,尝试在Project-Setting-Link添加DLL.lib一项。编译通过后运行程序就可以看到我们正确使用了库中的加法。
       下面介绍显示的加载动态链接库的例子:
      未完待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值