Win32 - 制作动态库

1. 制作动态库

1.打开vs2019,创建新项目

选择动态库并创建

3.选择属性->C++->预编译头->不使用预编译头

4.这个时候把IDE给你创建好的文件全部删除,我们先不使用他们

5.创建testDll.h和testDll.cpp文件

6.编写代码(不用包含main函数,因为我们不用让他跑起来)

testDll.h

//使用__declspec导出函数
__declspec(dllexport) int add(int a, int b);
__declspec(dllexport) int sub(int a, int b);
__declspec(dllexport) int mul(int a, int b);
__declspec(dllexport) int div(int a, int b);

testDll.cpp

#include "testDll.h"

int add(int a, int b)
{
	return a + b;
}
int sub(int a, int b)
{
	return a - b;
}
int mul(int a, int b)
{
	return a * b;
}
int div(int a, int b)
{
	return a / b;
}

代码写完了检查无误,我们点击生成解决方案,如果你的代码没有问题,就可以在工程文件夹的Debug目录下找到刚刚生成的.lib和.dll文件

Debug目录下刚刚生成的.lib和.dll文件

此时动态库就已经制作完成了。

 

2. 使用动态库

再创建一个工程,取名叫test_Dll,这个工程是用来测试动态库的。

添加以下测试代码:

#include <stdio.h>
#include <testDll.h>


int main()
{
	int a = 55;
	int b = 45;

	printf("%d+%d = %d\n", a, b, add(a, b));
	printf("%d-%d = %d\n", a, b, sub(a, b));
	printf("%dx%d = %d\n", a, b, mul(a, b));
	printf("%d/%d = %d\n", a, b, div(a, b));

	return 0;
}

为了让库跟着项目走我们可以在工程目录下创建一个文件夹取名叫Dll,然后在里面分别创建三个文件夹叫bin,include和lib,bin文件夹用来存放动态库,include文件夹用来存放头文件,lib文件夹用来存放静态库。

 

附加include目录

项目属性-》C/C++-》附加包含目录,把include文件夹的路径包含进去

注意:这里我们可以写相对路径:..\Dll\include

 

附加lib目录

项目属性-》链接器-》附加库目录,把lib文件夹的路径包含进去

注意:这里我们可以写相对路径:..\Dll\lib

 

引入静态库

方法1:

使用#pragma comment(lib,"StaticLib1.lib")

这个时候提示找不到Dll1.dll,然后就是要在Debug里放一个Dll1.dll。

最后按Ctrl+F5编译+运行

运行结果:

 

 方法2:

包含静态库名

项目属性-》链接器-》输入-》附加依赖项,把Dll1.lib文件名包含进去

这个时候可以去掉#pragma comment(lib,"Dll1.lib")了。

 

posted @ 2023-10-09 18:02  [BORUTO]  阅读(17)  评论(0编辑  收藏  举报