叠甲:本文非常简略,方法非常朴素,仅供参考。
目录
lib文件
生成lib文件
使用lib文件
dll文件
生成dll文件
使用dll文件
lib文件
生成lib文件
新建项目libTest。
右键项目→属性→配置属性→常规→配置类型,选择“静态库(.lib)”:
添加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;
生成→生成解决方案:
在Debug文件夹下可以找到输出的libTest.lib文件:
使用lib文件
新建项目libUse。
在项目libUse的文件夹下,新建lib文件夹。然后把libTest.lib复制到libUse/lib文件夹下。
按照如下3步进行配置:
- 右键项目→属性→C/C++→常规→附加包含目录,添加libTest的路径(即demo.h的路径)
- 右键项目→属性→链接器→常规→附加库目录,添加libUse/lib路径(即libTest.lib的路径)
- 右键项目→属性→链接器→输入→附加依赖项,添加libTest.lib
通过上面的步骤,成功为libUse导入了libTest.lib,可以直接使用了。使用方法如下:
#include "demo.h"
#include <cstdio>
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:
新建dllTest.h:
#pragma once
#include <iostream>
extern "C" __declspec(dllexport) void Hello();
新建dllTest.cpp:
#include "pch.h"
#include "dllTest.h"
void Hello()
{
std::cout << "Hello!" << std::endl;
}
生成→生成解决方案:
在Debug文件夹下可以找到输出的Dll1.lib和Dll1.dll文件:
使用dll文件
新建项目dllUse。
在项目dllUse的文件夹下,新建lib文件夹。然后:
- 把Dll1.lib复制到dllUse/lib文件夹下。
- 把Dll1.dll复制到dllUse/Debug文件夹下(注:即dllUse项目的exe文件存放的位置)(如果还没有Debug文件夹,运行一下就有了)。
按照如下3步进行配置:
- 右键项目→属性→C/C++→常规→附加包含目录,添加Dll1的路径(即dllTest.h的路径)
- 右键项目→属性→链接器→常规→附加库目录,添加dllUse/lib路径(即Dll1.lib的路径)
- 右键项目→属性→链接器→输入→附加依赖项,添加Dll1.lib
通过上面的步骤,成功为dllUse导入了Dll1.lib和Dll1.dll,可以直接使用了。使用方法如下:
#include "dllTest.h"
using namespace std;
int main() {
Hello();
return 0;
}