предисловие
Эта статья в основном предназначена для того, чтобы помочь вам написать и использовать DLL простым способом. В интернете есть много объяснений, что такое DLL, так что я не буду здесь нести чушь.
Реализовать функцию
1. Функция экспорта DLL
2. Класс экспорта DLL
1. Создайте DLL
1. Создайте новый пустой проект проекта C++, здесь имя проекта — myDll
2. Создайте файлы myDll.cpp и myDll.h
3. Напишите следующий код:
файл myDll.h
Примечание. Используйте ключевое слово __declspec(dllexport) для извлечения из данных экспорта DLL, функции, класса или функции-члена класса
#pragma once
//导出函数
__declspec(dllexport) int Add(int a, int b); //加法函数
__declspec(dllexport) int Sub(int a, int b); //减法函数
//导出类
class __declspec(dllexport) CMyDll
{
public:
int Mul(int a, int b); //乘法函数
int Div(int a, int b); //除法函数
};
файл myDll.cpp
#include "myDll.h"
/*函数实现*/
int Add(int a, int b)
{
return a + b;
}
int Sub(int a, int b)
{
return a - b;
}
int CMyDll::Mul(int a, int b)
{
return a * b;
}
int CMyDll::Div(int a, int b)
{
return a / b;
}
4. Создайте файл библиотеки динамической компоновки dll.
1) Настройте свойства проекта, как показано на рисунке ниже.
2) Щелкните правой кнопкой мыши имя проекта и выберите «Создать», чтобы сгенерировать файлы dll.
5. Создайте файлы библиотеки статической компоновки lib
. 1) Настройте свойства проекта, как показано. на рисунке ниже
2) Щелкните правой кнопкой мыши имя проекта, выберите «Создать», чтобы сгенерировать файл lib.
2. Использование DLL
1. Создайте новый пустой проект проекта C++, здесь имя проекта — useDll
2. Создайте файл useDll.cpp
3. Возьмите файлы dll, lib и myDll.h, сгенерированные проектом myDll, и поместите их в проект useDll
4 , Добавьте файл myDll.h в проект useDll
5. Код useDll.cpp выглядит следующим образом.
#include <iostream>
#include "./include/myDll.h"
#pragma comment (lib, "./dll/myDll.lib")
//动态库在运行时,会把代码链接到目标
//静态库在编译期,会把代码链接到目标
int main()
{
int a = 6, b = 2;
//使用导出函数
std::cout << "a + b = " << Add(a, b) << std::endl;
std::cout << "a - b = " << Sub(a, b) << std::endl;
//使用导出类
CMyDll myDll;
std::cout << "a * b = " << myDll.Mul(a, b) << std::endl;
std::cout << "a / b = " << myDll.Div(a, b) << std::endl;
std::getchar();
}
6. Щелкните правой кнопкой мыши имя проекта useDll и выберите «Создать», чтобы сгенерировать исполняемый файл.Результаты
выполнения следующие: