【原创】VS2005调用matlab R2010b生成的DLL

配置环境
Windows XP、VS2005、Matlab R2010b
安装过程
为了自己的论文,今天开始研究Matlab与C/C++混合编程。
1,安装matlab编译器
首先,利用百度查找相关知识,发现一篇文章写的不错,“VS2008 C++ 调用MATLAB 2009b 生成的DLL”,地址如下:
但是,在执行下面红色字样的命令时,出现了点问题。

>> mbuild -setup

Please choose your compiler for building standalone MATLAB applications:

Would you like mbuild to locate installed compilers [y]/n? n

Select a compiler:

[1] Lcc-win32 C 2.4.1

[2] Microsoft Visual C++ 6.0

[3] Microsoft Visual C++ .NET 2003

[4] Microsoft Visual C++ 2005 SP1

[5] Microsoft Visual C++ 2008 Express

[6] Microsoft Visual C++ 2008 SP1

[0] None

Compiler: 6

问题1:我的电脑上安装了VS2005和Matlab 7.1,但是在Matlab 7.1中执行“mbuild -setup”后,给我的选择列表中没有“Microsoft Visual C++ 2005 SP1”,只有“Microsoft Visual C++ 6.0”。这让我很郁闷,因为我是打算用VS2005和matlab混合编程的……

我的解决方法:卸载Matlab 7.1,安装Matlab R2010b。

(PS:需要说明的是,不是必须卸载Matlab 7.1。可参考文章“Matlab7.1用VS2005的编译器步骤”,地址如下:http://blog.csdn.net/rcaiwys/archive/2010/06/15/5672336.aspx,不过我可没有试验过……)

在Matlab R2010b中执行mbuild -setup,顺利发现“Microsoft Visual C++ 2005 SP1”,最后编译器的安装成功。
2,配置VS2005中项目的编译环境
这里的工作主要是参考文章“vs2005调用matlab函数”,地址如下:http://blog.21ic.com/user1/4370/archives/2009/59047.html
不过按照他的步骤配置后,项目无法运行……
问题2:程序运行时提示缺少DLL文件……
解决方法:于是继续利用baidu,找到文章“ 程序中使用MATLAB编译产生的DLL (VC6.0, MATLAB R2010b, mwArray)”,地址如下:http://www.matlabsky.com/forum-viewthread-tid-10041-highlight.html
文中给我了非常好的提示:
1、2008a以后,Mathworks公司对mclmcrrt.h 和 mclmcr.h头文件做了修改,要求mclmcr.h必须include在mclmcrrt.h之后。
2、不再需要include "mclmcr.h"和"mclcppclass.h"了,因为2010b生成的"libmyadd2.h"已经包含这两个头文件了。
3、生成需要的libmyadd2.dll,libmyadd2.h,libmyadd2.lib,libmyadd2.ctf文件。(注意,R2010b下,mcc -W cpplib:libmyadd2 -T link:lib myadd2.m不再生成libmyadd2.ctf文件,需加-C选项。
于是在Matlab中重新执行命令mcc -W cpplib:libmyadd2 -T link:lib myadd2.m -C。将新生成的
libmyadd2.ctf拷贝到项目中。重新生成项目,运行可执行文件,成功!!!
参考文献:
[1] VS2008 C++ 调用MATLAB 2009b 生成的DLL
[2] Matlab7.1用VS2005的编译器步骤
[3] vs2005调用matlab函数
[4] 程序中使用MATLAB编译产生的DLL (VC6.0, MATLAB R2010b, mwArray)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值