1. 创建 DLL 项目
- 打开 Visual Studio 2022。
- 创建一个新的项目,选择“动态链接库 (DLL)”模板。
- 设置项目名称和位置,然后点击“创建”。
2. 编写 DLL 代码
假设我们要创建一个包含简单类的 DLL,该类有一个整数成员变量。可以按照以下步骤编写代码:
头文件:(MyClass.h
)
#pragma once
#ifdef MYLIBRARY_EXPORTS
#define MYLIBRARY_API __declspec(dllexport)
#else
#define MYLIBRARY_API __declspec(dllimport)
#endif
class MYLIBRARY_API MyClass {
public:
MyClass();
~MyClass();
void SetValue(int value);
int GetValue() const;
private:
int m_value;
};
源文件(MyClass.cpp)
#include "MyClass.h"
MyClass::MyClass() : m_value(0) {}
MyClass::~MyClass() {}
void MyClass::SetValue(int value) {
m_value = value;
}
int MyClass::GetValue() const {
return m_value;
}
DLL 入口点(dllmain.cpp
)
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
3. 设置导出符号
在项目属性中,确保定义了 MYLIBRARY_EXPORTS 宏以导出符号:
右键点击项目,选择“属性”。
在“C/C++” -> “预处理器” -> “预处理器定义”中添加 MYLIBRARY_EXPORTS。
4. 编译 DLL
编译项目,将会生成一个 DLL 文件以及相应的导入库(.lib 文件)。
5. 使用 DLL
在另一个项目中使用该 DLL:
链接 DLL
将生成的 DLL 文件和 .lib 文件复制到新项目的目录中。
在新项目中添加对 .lib 文件的引用:
右键点击项目,选择“属性”。
在“链接器” -> “输入” -> “附加依赖项”中添加生成的 .lib 文件名。
使用类
在新项目的代码中包含头文件,并使用 DLL 中的类:
#include "MyClass.h"
#include <iostream>
int main() {
MyClass myClass;
myClass.SetValue(42);
std::cout << "Value: " << myClass.GetValue() << std::endl;
return 0;
}