欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows下动态库的创建和使用

程序员文章站 2022-06-03 21:45:43
...

要解决空间浪费和更新困难两个问题,最简单的办法就是把程序的模块相互分割开来,形成独立的文件,而不是将它们静态的链接在一起。简单的讲,就是不对那些组成程序的目标程序进行链接,等程序运行的时候才进行链接,也就是说,把整个链接过程推迟到了运行时在进行,这就是动态链接的基本思想。

怎么创建呢?

1.创建一个新项目mydll

2.添加mydll.h文件和mydll.c

添加如下内容:

#include<stdio.h>

//导入函数  智能在当前项目中使用
//int mySub(int a,int b);

//导出函数  能在项目外使用  __declspec特殊声明
__declspec (dllexport) int mySub(int a,int b);

 

如何配置静态库呢?

首先右键项目-->属性-->常规-->配置类型-->右边下拉选择动态库-->应用

 

重新生成解决方案,生成后会生成.lib文件和.dll文件

动态库生成的.lib文件 和 静态库生成的.lib文件不同

动态库中的.lib文件 只会存放一些 导出函数的声明和一些变量的声明,而具体的实现,存放在.dll文件中。

同样我们新建一个项目来测试一下。

将.lib文件和.dll文件和 mydll.h拷贝到该项目下

将那两个文件添加到该项目下,这次可以使用 #pragma comment(lib,"./mydll.lib") (后面添加.lib文件的路径就可以了,它会自动找到.dll)

#include<stdio.h>
#include"mydll.h"

#pragma comment(lib,"./mydll.lib")

int main()
{
	
	int ret = mySub(20,10);
	printf("ret = %d\n",ret);
	return 0;
}