VS2019生成和使用lib、dll文件

叠甲:本文非常简略,方法非常朴素,仅供参考。

目录

lib文件

生成lib文件

使用lib文件

dll文件

生成dll文件

使用dll文件


lib文件

生成lib文件

新建项目libTest。

右键项目→属性→配置属性→常规→配置类型,选择“静态库(.lib)”:

VS2019生成和使用lib、dll文件_第1张图片

添加demo.h:

#pragma once
#ifndef demo_H

int myAdd(int a, int b);
class student
{
public:
	static int num;
};

#define demo_H

#endif 

#pragma once

添加demo.cpp:

#include "demo.h"
int myAdd(int a, int b)
{
	return a + b;
}

int student::num = 188;

 生成→生成解决方案:

VS2019生成和使用lib、dll文件_第2张图片

在Debug文件夹下可以找到输出的libTest.lib文件:

VS2019生成和使用lib、dll文件_第3张图片

使用lib文件

新建项目libUse。

在项目libUse的文件夹下,新建lib文件夹。然后把libTest.lib复制到libUse/lib文件夹下。

按照如下3步进行配置:

  1. 右键项目→属性→C/C++→常规→附加包含目录,添加libTest的路径(即demo.h的路径)
  2. 右键项目→属性→链接器→常规→附加库目录,添加libUse/lib路径(即libTest.lib的路径)
  3. 右键项目→属性→链接器→输入→附加依赖项,添加libTest.lib

通过上面的步骤,成功为libUse导入了libTest.lib,可以直接使用了。使用方法如下:

#include "demo.h"
#include 
using namespace std;
int main() {
	int x = myAdd(3, 4);
	int y = student::num;

	printf("%d %d\n", x, y);
	return 0;
}

dll文件

生成dll文件

我直接使用了动态链接库模板,创建新项目Dll1:

VS2019生成和使用lib、dll文件_第4张图片

 新建dllTest.h:

#pragma once
#include 

extern "C" __declspec(dllexport) void Hello();

新建dllTest.cpp:

#include "pch.h"
#include "dllTest.h"

void Hello()
{
	std::cout << "Hello!" << std::endl;
}

  生成→生成解决方案:

VS2019生成和使用lib、dll文件_第5张图片

在Debug文件夹下可以找到输出的Dll1.lib和Dll1.dll文件:

VS2019生成和使用lib、dll文件_第6张图片

使用dll文件

新建项目dllUse。

在项目dllUse的文件夹下,新建lib文件夹。然后:

  1. 把Dll1.lib复制到dllUse/lib文件夹下。
  2. 把Dll1.dll复制到dllUse/Debug文件夹下(注:即dllUse项目的exe文件存放的位置)(如果还没有Debug文件夹,运行一下就有了)。

按照如下3步进行配置:

  1. 右键项目→属性→C/C++→常规→附加包含目录,添加Dll1的路径(即dllTest.h的路径)
  2. 右键项目→属性→链接器→常规→附加库目录,添加dllUse/lib路径(即Dll1.lib的路径)
  3. 右键项目→属性→链接器→输入→附加依赖项,添加Dll1.lib

通过上面的步骤,成功为dllUse导入了Dll1.lib和Dll1.dll,可以直接使用了。使用方法如下:

#include "dllTest.h"
using namespace std;
int main() {
    Hello();
	return 0;
}

你可能感兴趣的:(c++,windows)