
动态链接库Dynamic-Linked Lib 的创建与使用
动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"。
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。使用动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库中,您无需重新生成或安装整个程序就可以应用更新。;Linux系统中常常是 ".so" 的文件表示是动态链接库。
- 扩展了应用程序的特性;
- 可以用许多种编程语言来编写;
- 简化了软件项目的管理;
- 有助于节省内存;
- 有助于资源共享;
- 有助于应用程序的本地化;
- 有助于解决平台差异;
- 可以用于一些特殊的目的。Windows 使得某些特性只能为 DLL 所用。
VS2013在创建DLL时提供了很好的便捷性,通过新建项目--Win32项目: 选中DLL,以及导出符号,则MFC会自动生成Win32Dll2.h和Win32Dll2.cpp 两个文件,.h文件是要导出内容的声明文件,可以直接和DLL文件一起发送公开。如下图:
aaarticlea/png;base64,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" alt="" width="542" height="282" />
aaarticlea/png;base64,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" alt="" width="332" height="281" />
修改.cpp文件中按照给出的实例添加自己的程序:
可以在DLL中添加:变量,函数,类
// Win32Dll2.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include "Win32Dll2.h"
// 这是导出变量的一个示例
WIN32DLL2_API int nWin32Dll2=;
// 这是导出函数的一个示例。
WIN32DLL2_API int fnWin32Dll2(void)
{
return ;
}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 Win32Dll2.h
CWin32Dll2::CWin32Dll2()
{
return;
}
WIN32DLL2_API int addByDll(int a, int b)
{
return a + b;
}
修改.h文件,添加自己函数的dll声明:
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 WIN32DLL2_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// WIN32DLL2_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef WIN32DLL2_EXPORTS
#define WIN32DLL2_API __declspec(dllexport)
#else
#define WIN32DLL2_API __declspec(dllimport)
#endif // 此类是从 Win32Dll2.dll 导出的
class WIN32DLL2_API CWin32Dll2 {
public:
CWin32Dll2(void);
// TODO: 在此添加您的方法。 };
extern WIN32DLL2_API int nWin32Dll2;
WIN32DLL2_API int fnWin32Dll2(void);
WIN32DLL2_API int addByDll(int a, int b);
编译Win32Dll2项目,在编译C++DLL之前,需要做以下配置(项目右键项目属性):项目属性--[C/C++]--高级:修改“编译为”的值为"C++",这样创建C++调用的动态DLL。
则再解决方案的Debug目录下面生成如下文件:其中.dll文件,以及.lib文件最重要 。
.dll文件最终要放在被调用项目的Debug目录下面(随exe文件同目录位置)。
.lib文件需要包含如被调用项目中。
.h文件也提供给用户,用于包含在被调用项目的文件目录中。因为一般DLL会提供一个头文件,在此文件中提供DLL导出函数原型的声明.h文件。这样便于DLL方便调用。
aaarticlea/png;base64,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" alt="" />
DLL库的使用:
创建DLL测试工程:dllTest, Win32控制台项目
使用DLL步骤如下:
(1)将DLL提供的头文件XXX.h放置在测试项目中的物理文件存储位置。
在测试项目中将此文件包含进来:在放置的合适的逻辑位置右键--添加--已有文件,添加即可。
或者:1.当不需要模块划分,直接放置在了测试项目文件根目录下面:
相对路径方式:再使用的文件中直接#include“..\..XXX.h”。 直接调用。(需要考虑相对路径问题)
或者:2. 当需要模块划分,文件放置在项目文件根目录中下的子模块的文件夹下面:
修改“附加包含目录”:项目属性--配置属性--【C/C++】--常规:附加包含目录。 即添加.h文件所在的目录。 然后直接在需要使用的文件中#include“XXX.h”,从而不需要考虑相对路径的问题。
(2)将DLL提供的XXX.lib文件添加到测试项目中。
1. 添加文件引用的lib静态库路径:
修改“附加包含目录”:项目属性--配置属性--连接器--常规:附加库目录。 即添加.lib文件所在的目录。
2. 然后添加测试工程引用的lib文件名:
项目属性---配置属性---链接器---输入---附加依赖项:加上lib文件名。
(3)添加工程引用的dll动态库,添加到Debug(exe文件的相同目录下)
把引用的dll放到工程的可执行文件所在的目录下。如果不放置在此目录下,会出现如下情况:
aaarticlea/png;base64,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" alt="" />
测试程序如下:
#include "stdafx.h"
#include <iostream>
#include "Win32Dll2.h"
//#include "Win32"
using namespace std;
//
//extern int addByDll(int a, int b);
//extern int subByDll(int a, int b); int _tmain(int argc, _TCHAR* argv[])
{
cout << "11 + 8 = " << addByDll(, ) << endl;
system("pause");
return ;
}
编译通过后,执行:
aaarticlea/png;base64,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" alt="" />
如果不采用MFC自动提供的方式,如果直接写,则同样有生成Dll和lib文件,但是没有.h文件。
则再CPP文件中直接定义:
_declspec(dllexport) int addByDll(int a, int b)
{
return a + b;
}
_declspec(dllexport) int subByDll(int a, int b)
{
return a - b;
}
2. 然后在测试工程中如上述添加lib,以及Dll方式处理。
在需要引用的位置使用如下声明,因为在编译的时候,头文件不参与编译,只编译源文件。 __declspec(dllimport) 则是用来定义从动态链接库中的引用声明。
.h使用文件如下添加从动态链接库的引用声明。
#ifdef WIN32DLL2_EXPORTS
#define WIN32DLL2_API __declspec(dllexport)
#else
#define WIN32DLL2_API __declspec(dllimport)
#endif WIN32DLL2_API int addByDll(int a, int b);
WIN32DLL2_API int subByDll(int a, int b);
3. DLL可以导出C++类