VS2015调用Matlab编译生成的DLL 编译环境设置 [吐血整理]

本贴目的: 64位编译,VS2015调用Matlab2016编译生成的DLL,搞定:各种运行错误,调试错误。

 

转载说明:

本贴内容仅仅用于软件代码的研究和学习,相关的转载和应用不得损害Microsoft和Mathworks公司的商业利益。

有条件的情况下,请稍微支持一下老美的正版软件,例如高校有经费买套正版或者买个学习版的,中国的开发者还是要参与到老外的开发体系中。如果版权所有者认定本贴已经发生侵权,请及时告知nanohujin@139.com。

各位老炮:对于比较有价值的题目还是要继续发帖和回帖,帮扶新人。只看贴不回不发,论坛的魔力就没了,各位年轻时候也是泡着坛子过来的。。。

 

本贴背景:

32位编译下,VC++(Visualstudio)调用Matlab编译生成的DLL本来是一件很容易的事情,现在转到64位了,编译环境设置不当,程序无法调通。另外,参照别人的帖子copy代码,不仔细思考,容易出现各种运行报错。 

不想折腾的话,可以先用32位编译过渡一下:VS安装2010之前的版本,选用(x86) 32位编译,Matlab安装2011之前的版本,那个是支持32位编译的。这个路是通的,但是太保守,错过了新软件(个人认为VS2015的界面,好用而美腻)和新资源(OpenCV是个好东西,不安装最新的VS支持不了)。另外,OpenCV高版本只(直接)支持64位编译,所以还是要继续前进。。。 

看到很多帖子有“杂交”的想法:安装高版本VS和低版本的Matlab。VS采用64位编译,编写主程序;VS采用32位编译,编写辅助程序调用Matlab 32位DLL。主程序和辅助程序采用进程间通信,例如:COM服务器,共享内存地址,发送消息。。。这个真的是很辛苦。其中,低版本的Matlab,mbuild选择高版本VS的编译器,也是比较麻烦,这里不展开。

 

另外,VC调用Matlab C++ Math Library也是一种混合编程的解决方案,我个人不推荐。理由:有些m文件不支持C文件编译输出。功能打包和调用编程没有DLL简便。

 

本贴内容:

[1]================扫清外围问题

VS和Matlab版本兼容的问题。Matlab的编译器只支持最近的VS版本,这个用mbuild –setup测试就知道了,一般建议Matlab版本稍高。本人建议:VS2015和Matlab2016,本人电脑win7 64。

首先,Matlab本身安装必须正点,安装后无需特别设置,直接mcc 编译一个图形显示+运算的exe运行OK。所以某论坛的破2017版本不建议安装。

其次,某些同志程序调不通,就各种VS和Matlab版本安装和卸载,这个没有必要。要相信老美大公司的产品。关键是,最终也没调通。

 

[2]=========== ====实例和过程

以下步骤描述简单,但是保证完整。

M文件定义。

function c =Test(a,b)

c = a+b;

--------------------------------------

Matlab命令生成库文件和头文件

mcc -W cpplib:TestMat64 -T link:lib Test

获得所需文件,拷贝到VS工程相应目录下。

 

电脑中添加Matlab运行环境: [ 注意:电脑重启生效!!!]

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值