c++类函数代码打包成dll及其如何调用 |
您所在的位置:网站首页 › c++封装类库 › c++类函数代码打包成dll及其如何调用 |
目录 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. 调用 DLL1)新建项目,命名。 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 |