一、步骤
1. 创建类头文件
首先,定义你要封装的类。例如,创建一个名为MyClass
的类:
// MyClass.h
#pragma once
#ifdef MYCLASS_EXPORTS
#define MYCLASS_API __declspec(dllexport)
#else
#define MYCLASS_API __declspec(dllimport)
#endif
class MYCLASS_API MyClass {
public:
MyClass();
~MyClass();
void SayHello();
};
2. 实现类
接下来,实现这个类的方法:
// MyClass.cpp
#include "MyClass.h"
#include <iostream>
MyClass::MyClass() {}
MyClass::~MyClass() {}
void MyClass::SayHello() {
std::cout << "Hello from MyClass!" << std::endl;
}
3. 创建 DLL 工程
在 Visual Studio 中创建一个新的 DLL 工程:
- 打开 Visual Studio,创建一个新的项目。
- 选择
Dynamic-link Library (DLL)
项目类型。 - 在项目设置中添加
MYCLASS_EXPORTS
到预处理器定义中,以便正确导出类。
4. 构建 DLL
构建工程,将会生成一个 DLL 文件(例如 MyLibrary.dll
)。
5. 使用 DLL
要使用这个 DLL,需要在另一个项目中导入它:
// main.cpp
#include <iostream>
#include "MyClass.h"
int main() {
MyClass myClass;
myClass.SayHello();
return 0;
}
在你的新项目中,确保以下几点:
- 将生成的
MyLibrary.dll
文件复制到新项目的运行目录。 - 在新项目的设置中,添加
MyLibrary.lib
文件到链接器输入中。 - 确保
MyClass.h
头文件在新项目的包含路径中。
二、讲解
定义动态链接库按照上边步骤即可完成,但是需要对预处理定义深入理解,才能够明白我们定义动态链接库时候究竟是在做什么。