matlab函数编译成DLL库,供VS2015 MFC C++调用(亲测成功)

本文详细记录了如何将MATLAB函数编译成DLL库,并在VS2015 MFC C++项目中成功调用的过程。通过MATLAB R2016a和VS2015,创建C++项目,打包MATLAB功能脚本,解决编译和路径配置问题,最终实现图像计算与机台控制任务的混合编程。
摘要由CSDN通过智能技术生成

matlab函数编译成库,供C++调用(亲测成功)

应用背景:

最近有个图像计算,还带着机台控制的任务要计划。想着怎么实现的问题。对于图像数据的处理,MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,但是界面用MATLAB开发的现在参考较少。而用C++做控制界面容易。但是图像计算很复杂。

然后就想到用C++的MFC架构来调用MATLAB编写的计算函数,不就强强联手,各取所长了吗。然后就开始做实验了。我当时想的是MATLAB封装成lib库,然后给MFC调用,网上一搜发现相关的帖子好多,于是开始照做了。

在实验过程中,遇到很多问题,实在是成功的太痛苦了,成功了以后特意写个帖子记录下。

环境介绍:

win10 64位、MatlabR2016a  64位、VS2015 (VS编译的时候可以选32、64位编译。我选的是64 位Release编译)

一)首先下载安装 MatlabR2016a  64位,并且正确激活.

我可能下载的是这个吧。https://blog.csdn.net/weixin_42858575/article/details/89309667。差不多应该。

然后就是如果激活失败了不要慌。根据错误提示,在安装文件夹下,找到生成的lice文件,删掉就可以接着激活了。

1.安装激活(最好安装在D盘,给C盘留空间)

2.配置系统路径

右击此电脑 ->属性 ->高级系统设置->环境变量(系统属性框之高级页)->选中环境变量(S)下的Path ,然后点编辑(不会加的试一试百度)。具体加的几条参考下图。ps: MatlabR2016(安装的运行文件夹)以及它前面的目录信息,根据个人安装情况设置。

成功激活以后,电脑自己就会配有几条,我也不记得是哪几个,大家参考图片把路径写完整了就行。不要漏,漏了会出现有很多.dll找不到的问题。

二)建立c++项目。

不知道为什么参考博主,大都建立的是控制台项目,可能验证阶段好调试吧。我也照着建立了控制台程序。虽然没试,但是肯定 mfc也是可以的。以下例子仅演示建立过程,我实际实验的工程名叫:ConsoleApplication1。大家根据实际放置目录随机应变。

打开VS2015,在起始页点击 文件(F)->新建(N)->项目(P)弹框:新建项目。

在 已安装-> 模板 ->Visual C++ -> Win32控制应用程序 ,自己定义好位置名称,点确定,点下一步,点完成。

matlab2012b windows版在关联vs2012编译器的时候,以及无法编译dll。 原因就是matlab默认的编译器的目录配置,include目录以及lib目录配置错误造成的。 如果你的vs目录不是默认的,或者windows是32位版本,或者vs版本不是2012,或者你的mt.exe目录不在Windows kits下,那么有可能需要修改附件里面的相关目录的设置(其实就是mbuild配置cl.exe和mt.exe的目录位置,以及mex配置的include和lib的所需目录),mbuild是编译exe的,mex是编译dll的。我的另一个资源仅处理mbuild配置,未处理mex的配置,所以不能成功编译mex。如果你已经下载过我的另一个资源,请替换mexopts目录下的msvc110opts.bat文件的30和31行代码(而不必下载这个资源): set INCLUDE=%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\ATLMFC\INCLUDE;%LINKERDIR%\include\um;%LINKERDIR%\include\shared;%LINKERDIR%\include\WinRT;%INCLUDE% set LIB=%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%LINKERDIR%\lib\win8\um\x64;%MATLAB%\extern\lib\win64;%LIB% 附件里有一个word文件,是我修改的注释信息,如果需要手动修改,可以当做帮助来用. mbuild设置方法: 1 把附件相关的4个文件添加到matlab/bin/win64下面的2个相关目录 2 在matlab 里面运行 mbuild -setup, 然后选 y, 再选择2012的那个项目,再选y 3 mbuild应该成功了,此时可以编译为exe文件。 mex设置方法: 1 在matlab 里面运行 mex -setup, 然后选 y, 再选择2012的那个项目,再选y 2 mbuild应该成功了,此时可以编译为dll文件
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值