【原创】VS2005调用matlab R2010b生成的DLL
2017-04-17 15:21
232 查看
配置环境: Windows XP、VS2005、Matlab R2010b 安装过程: 为了自己的论文,今天开始研究Matlab与C/C++混合编程。 1,安装matlab编译器 首先,利用百度查找相关知识,发现一篇文章写的不错,“VS2008 C++ 调用MATLAB 2009b 生成的DLL”,地址如下: http://blog.csdn.net/infocarrier/archive/2010/09/01/5854522.aspx 但是,在执行下面红色字样的命令时,出现了点问题。 >> 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 http://blog.csdn.net/infocarrier/archive/2010/09/01/5854522.aspx [2] Matlab7.1用VS2005的编译器步骤 http://blog.csdn.net/rcaiwys/archive/2010/06/15/5672336.aspx [3] vs2005调用matlab函数 http://blog.21ic.com/user1/4370/archives/2009/59047.html [4] 程序中使用MATLAB编译产生的DLL (VC6.0, MATLAB R2010b, mwArray) http://www.matlabsky.com/forum-viewthread-tid-10041-highlight.html
相关文章推荐
- VS2005生成DLL的调用
- 【原创】PB调用SAP的Web Service结构体数组参数方法详解(使用C#调用Web Service生成dll)
- PB调用VS2005生成的DLL
- vs2005发布站点生成随机的dll文件名的解决方案
- VS2005发布、生成网站时如何设置固定的dll文件名?
- 在C++ Builder中调用FORTRAN生成的DLL
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- vb.net 下调用生成dll的SqlHelper
- vs2005发布站点生成随机的dll文件名的解决方案
- vs2005发布生成自定义dll
- 在c#中调用c++生成的dll(wince开发)
- 关于使用vc++调用matlab生成的dll传递数组的问题
- 一个 ORACLE 调用 DLL 的例子(原创)
- 在asp中调用.net 2.0生成的dll
- VS2005发布、生成网站时如何设置固定的dll文件名?
- JAVA中调用C/C++生成的DLL
- 读取INI文件调用DLL动态生成菜单
- VS2005中使用FileUpload控件上传图片并自动生成缩略图(原创)
- 自动生成数据库连接配置文件的工具(调用VS2005数据源选择对话框)
- Vs2005如何生成一个固定名称的dll? (downmoon)