VC++动态连接库创建和调用
一. 项目中经常会使用到DLL(动态链接库)和LIB(静态链接库)库,使用动态链接库的优点有:
1. 节省内存和减少交换操作。 很多进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。 相反,对于每个用静态链接 库 生成的应用程序,Windows 必须在内存中加载库代码的一个副本。
2. 节省磁盘空间。
许多应用程序可在磁盘上共享 DLL 的一个副本。
相反,每个用静态链接库生成的应用程序均具有作为单独的副 本链接到其可执行图像中的库代码。
3. 升级到 DLL 更为容易。
当 DLL 中的函数发生更改时,只要函数的参数和返回值没有更改,就不需重新编译或重新链接使用它们 的应用程序。
相反,静态链接的对象代码要求在函数更改时重新链接应用程序。参考网站(http://msdn.microsoft.com/zh-cn/library/dtba4t8b.aspx)
二.创建动态连接库
1.创建Win32控制台应用程序,命名为Dlldemo,如图1所示:
图1 创建win32程序
2.应用程序选择dll,如图2所示:
图2
点击完成,就创建了一个dll的项目。
3. 编辑dll
创建头文件和源文件,如图3所示
图3
打开头文件添加函数:
extern "C" __declspec(dllexport) int AddInt(int numA, int numB);
打开源文件添加函数实现:
#include "demodll.h"
int AddInt(int numA, int numB)
{
int sum = 0;
sum = numA + numB;
return sum;
}
然后编译项目,在debug文件中生成dll和lib文件,这两个文件就是生成的动态库和静态库。
以上就是创建动态库的一种方法。
三.动态库的调用
新建一个项目,然后将lib文件考到该项目目录下,dll文件考到debug文件下,项目->属性->链接器里面添加lib依赖项目,将头文件包含到项目中,就可以使用该动态库了。