C++动态链接库(dll)与静态链接库(lib)的生成与导入

工具:visual studio 2013

一、写在前面:

1.dll全称为dynamic link library, 即动态链接库,里面包含可有多个程序执行的代码和数据,程序运行时需要dll。lib全称Static link library,即静态链接库,里面包含dll中各函数的入口信息,在程序编译的时候要用到。

2.动态库文件存在,使得设计者可以隐藏函数的具体实现,并且增加代码的复用性(一个dll文件可由多个程序运行,一个lib文件可由多个程序编译)。

3.一个动态库参与的程序中,lib文件和dll文件都要用到。

二、动态库dll的生成:

1.新建项目->Win32项目-> 下一步,在应用程序设置界面中选择DLL(D)选项,完成;

2.在建好的项目中新建头文件(.h),注意在头文件最上边写下这几行代码:

#pragma once                                //只编译一次
#ifdef XXXXX_EXPORTS                        //如果定义了XXXXX_EXPORTS变量
#define DLLE_API __declspec(dllexport)      //那么定义DLLE_API为 __declspec(dllexport)的别名
#else                                       //如果没有定义
#define DLLE_API __declspec(dllimport)      //定义该DLLE_API字段为导入
#endif

XXXXX_EXPORTS是导出者定义的,导入者不会定义这个变量。__declspec(dllexport)为导出标志,若想把某个类导出,在该头文件中把此类写成

class DLLE_API 类名

若想把某个函数导出,则写成

extern "C" 返回类型 DLLE_API 函数名(参数1,参数2,,);

extern “C”表示“其他的类已经定义了这段代码里的内容,这里只是声明”。“C”表示一种编译哈连接规约,即“这段代码可以是符合C语言的编译和连接规约的任何语言,包括fortran等”。

3.建立源文件(C++),实现头文件中的函数。

4.生成。点击调试器按钮或者菜单栏生成DLL选项都可以,最后会在项目根目录的debug里找到dll和lib文件。

三、dll和lib的引用

1.打开需要引用dll和lib的工程(下称“目标工程”),打开属性(alt+enter),找到链接器->输入->附加依赖项,输入"文件名.lib";

2.把lib文件放到目标工程目录下,确保该目录是属性->C++->常规->附加包含目录中的,若不是则添加;

3.把dll文件放到根目录下的Debug文件夹中,注意是根目录下的。

3.在工程中添加与lib名称相同的头文件(.h),在文件最上方注明:

class __declspec(dllimport) XXXXX;  //XXXXX为lib中要导出的类的名称,该类也是此头文件中要包含的

若要导出函数,则写成:

extern "C" __declspec(dllimport) void 函数名(参数列表);

4.编写该头文件,写明要导出的类的全部函数和属性;

5.编译+运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值