网络上关于vs生成dll的教程很多,解决方案繁杂,令人眼花缭乱,踩坑后推荐几篇不错的教程,亲自测试可以通过的,我的调试环境是vs2015 enterprise版+win10+opencv3.4.1。
教程1:最简单的DLL生成与调用教程:作者采用了声明类进行打包的方法来调用。
https://blog.csdn.net/dearKundy/article/details/73331514
教程2:进阶的DLL生成与调用教程,包含了opencv第三方lib和dll的调用与打包,生成的DLL可独立于opencv环境运行。采用的是打包函数的方法,本人推荐这种方法,比较简单易懂。
https://blog.csdn.net/hit2015spring/article/details/52624985
https://blog.csdn.net/sinat_33690776/article/details/68951774
教程3:教程2中采用了静态调用方法,且没有给出多个函数的导出声明,于是我参考教程3完成了多函数导出声明与动态调用。
https://blog.csdn.net/liu_matthew/article/details/55804710
1.需求分析:
将一个基于opecv的图像超分辨率程序打包成DLL,并测试。接口传入的参数是Mat格式的图像,结果是imshow超分辨率后的图像。
2.新建DLL工程
1. 创建无导出符号的dll空项目;
2. 然后就是将之前写的函数代码复制到源文件中的Bleed.cpp中,其它两个cpp不要管。
复制完毕后,点开Bleed.cpp然后对要调用的函数前面加上__declspec(dllexport),如图中所示: