详述C++调用opencv编译成dll并调用的全过程-创新互联
本篇详述的是在Vs2019+OpenCV环境下生成动态链接库DLL并加以调用的全过程<1>生成动态链接库:
1、Vs创建新项目 -->动态链接库(DLL)
__declspec(dllexport):告诉编译器和链接器被它修饰的函数或变量需要从DLL导出,以供其他应用程序使用;与其相对的还有一句代码是__declspec(dllimport),此修饰符的作用是告诉编译器和链接器被它修饰的函数或变量需要从DLL导入,它在后面也会被用到。
void thresholdIntegral(Mat inputMat, Mat outputMat):就是需要被其他程序调用的函数。 (此处解释来源于博主「Aishen1024」的原创文章,原文链接:https://blog.csdn.net/qq_30139555/article/details/103621955) 5、源文件--添加--新建项--.cpp文件--添加![](/upload/otherpic43/23882b1c7c014dbcbe66ed02ba0a93bf.jpg)
然后,extern "C" __declspec(dllexport) 修改为 extern "C" __declspec(dllimport) ,它的作用是告诉编译器和链接器被__declspec(dllimport)修饰的函数或变量需要从DLL导入。 5)编写需调用dll的cpp文件即可
当前标题:详述C++调用opencv编译成dll并调用的全过程-创新互联
当前地址:http://tyjierui.cn/article/dheoog.html
#pragma once
#include#include#include#include#includeusing namespace std;
using namespace cv;
extern "C" __declspec(dllexport) void thresholdIntegral(Mat inputMat, Mat outputMat);
其中,extern "C":告诉编译器将被它修饰的代码按C语言的方式进行编译。__declspec(dllexport):告诉编译器和链接器被它修饰的函数或变量需要从DLL导出,以供其他应用程序使用;与其相对的还有一句代码是__declspec(dllimport),此修饰符的作用是告诉编译器和链接器被它修饰的函数或变量需要从DLL导入,它在后面也会被用到。
void thresholdIntegral(Mat inputMat, Mat outputMat):就是需要被其他程序调用的函数。 (此处解释来源于博主「Aishen1024」的原创文章,原文链接:https://blog.csdn.net/qq_30139555/article/details/103621955) 5、源文件--添加--新建项--.cpp文件--添加
上述操作之后,会发现关于opencv库的头都在报错,配置好opencv就没事了。
首先我一直使用的都是 debug x64的平台![](/upload/otherpic43/23882b1c7c014dbcbe66ed02ba0a93bf.jpg)
这个时候问题来了,发现我们的生成的只有dll文件,却缺少相对应的lib文件,那么要解决一下这个问题了。
PS: 打开之前的dll1.sln 在工程上右键 ->添加 ->新建项 ->选"模块定义文件(.def)" ->随便输入个名字 ->添加#pragma once
#pragma comment(lib,"Dll1.lib")
#include#include#include#include#includeusing namespace cv;
extern "C" __declspec(dllimport) void thresholdIntegral(Mat inputMat, Mat outputMat);
首先,添加一行代码:#pragma comment(lib,"xxx.lib"),它的作用是将您的“xxx.dll”链接到您的工程项目中;然后,extern "C" __declspec(dllexport) 修改为 extern "C" __declspec(dllimport) ,它的作用是告诉编译器和链接器被__declspec(dllimport)修饰的函数或变量需要从DLL导入。 5)编写需调用dll的cpp文件即可
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:详述C++调用opencv编译成dll并调用的全过程-创新互联
当前地址:http://tyjierui.cn/article/dheoog.html