c++类函数代码打包成dll及其如何调用

您所在的位置:网站首页 c++封装类库 c++类函数代码打包成dll及其如何调用

c++类函数代码打包成dll及其如何调用

2023-08-07 08:31| 来源: 网络整理| 查看: 265

目录

1. 创建动态链接库 (DLL) 项目

2. 向动态链接库添加类

3. 调用 DLL 

1. 创建动态链接库 (DLL) 项目

vs2019创建方式 

生成的文件如下所示。

vs2015创建方式:

 

2. 向动态链接库添加类

1. 若要为新类创建头文件,请在菜单栏上,依次选择**“项目”、“添加新项”。 在“添加新项”对话框的左窗格中,在“Visual C++”下选择“代码”。 在中间窗格中,选择“头文件(.h)”。 为头文件指定名称(例如 MathFuncsDLL.h),然后选择“添加”**按钮。 将显示一个空白头文件。

2. 将以下代码添加到头文件

#pragma once // MathFuncsDll.h #include #include #include #include #include // //#ifdef MATHFUNCSDLL_EXPORTS //#define MATHFUNCSDLL_API __declspec(dllexport) //#else //#define MATHFUNCSDLL_API __declspec(dllimport) //#endif // 添加一个名为 MyMathFuncs 的基类,以执行常见的算术运算(例如加、减、乘和除)。 代码应类似如下 namespace MathFuncs { // This class is exported from the MathFuncsDll.dll class MyMathFuncs { public: // Returns a + b static __declspec(dllexport) double Add(double a, double b); // Returns a - b static __declspec(dllexport) double Subtract(double a, double b); // Returns a * b static __declspec(dllexport) double Multiply(double a, double b); // Returns a / b // Throws const std::invalid_argument& if b is 0 static __declspec(dllexport) double Divide(double a, double b); static __declspec(dllexport) bool testBuildOpencvDLL(cv::Mat& imgInput, cv::Mat& imgOutput); }; }

3. 实现源文件中 MyMathFuncs 的功能。 代码应类似如下。

//#include "stdafx.h" #include "pch.h" #include "MathFuncsDLL.h" #include using namespace std; // Defines the exported functions for the DLL application. namespace MathFuncs { double MyMathFuncs::Add(double a, double b) { return a + b; } double MyMathFuncs::Subtract(double a, double b) { return a - b; } double MyMathFuncs::Multiply(double a, double b) { return a * b; } double MyMathFuncs::Divide(double a, double b) { if (b == 0) { throw invalid_argument("b cannot be zero!"); } return a / b; } bool MyMathFuncs::testBuildOpencvDLL(cv::Mat& imgInput, cv::Mat& imgOutput) { cv::cvtColor(imgInput, imgOutput, cv::COLOR_BGR2RGB); return false; } }

4. 右键项目,设为启动项目,然后通过在菜单栏上依次选择**“生成”、“生成解决方案”**来编译动态链接库。

3. 调用 DLL 

1)新建项目,命名。

2)调用dll内的类函数,cpp文件内容如下。

#include #include "MathFuncsDLL.h" #include #include #include #include #include //#include #include using namespace std; int main() { double a = 7.4; int b = 99; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3