Windows下动态库的创建和使用

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

怎么创建呢?

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;
}

猜你喜欢

转载自blog.csdn.net/weixin_42596333/article/details/104589061