MATLAB6p5 与VC.NET 混合编程配置
第一步:解压msvc71patch.exe (注意目录是如D:\matlab6p5,怀疑他的版本是matlab6p5p1,所以解压出来的matmtxif.h 、stdexcpt.h有点问题, 解压出来的文件所在目录参考下面紫色字体)
根据不同的系统,不同的VS、matlab版本,需注意系统变量中,PATH 值、INCLUDE值、LIB值和与msvc71compp.bat等批处理文件的set PATH= …、set INCLUDE=…值是否对应,其它可能还要看
VS71COMNTOOLS (如D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools)
MSVCDir(如D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7)
DevEnvDir(如D:\Program Files\Microsoft Visual Studio .NET 2003\ Common7\Tools) 是否正确
第二步:如果版本是matlab6p5 (6p5p1可能不用,待测试),拷贝当前目录下的matmtxif.h 、 stdexcpt.h到“%matlab%extern\include\cpp”中相应的文件。将MSVCIRT.LIB拷贝到“%matlab%extern\lib”中
注意以下文件安放目录:(%MATLAB% 表示个人电脑的matlab安装目录)
msvc71opts.stp %MATLAB%\bin\win32\mexopts\
msvc71opts.bat %MATLAB%\bin\win32\mexopts\
msvc71engmatopts.bat %MATLAB%\bin\win32\mexopts\
msvc71compp.stp %MATLAB%\bin\win32\mbuildopts\
msvc71compp.bat %MATLAB%\bin\win32\mbuildopts\
%MATLAB%\extern\lib\win32\libmatpm.lib
%MATLAB%\extern\include\cpp\stdexcpt.h
%MATLAB%\extern\include\cpp\matmtxif.h
%MATLAB%extern\lib\MSVCIRT.LIB
第三步:然后在matlab 命令行中输入:mbuild –setup,选择VS2003 .net (或VC7.1)
Mex build的过程和上面类似,只要将相应的文件拷贝到matlab的“bin\mexopts”目录中就可以配置
现在可以用mcc命令将m文件编译成库文件或者exe文件了,并且可以在vc7.1上直接调用matlab c++函数库了,在vc8.0上配置c++函数库与此类似:
1. 菜单->”工具”->”选项”->”项目和解决方案”>”vc++目录”
“包含文件”中添加下图中的最后两项(当然时对应你自己的matlab目录)
若电脑上同时安装了matlab6.x和matlab7.x时,在用6.x混编时,将7.x的安装文件夹修改名字,如D:\MATLABxxx(使用7.x时可类似处理),同时选项目录中应选择如下:
“库文件”中也添加下图中的最后两项
2. 在你的工程文件的属性中配置 ”预处理器定义”,变为如下值
Debug对应: WIN32;_WINDOWS;_DEBUG;MSVC;IBMPC;MSWIND
Releas对应: WIN32;_WINDOWS;NDEBUG;MSVC;IBMPC;MSWIND
3. 定义库文件
在”链接器”->”输入”->”附加依赖项”中添加
libmmfile.lib libmatlb.lib libmx.lib libmat.lib libmwservices.lib libmex.lib libut.lib libmatpm.lib sgl.lib libmwsglm.lib
注意在Debug模式下 “忽略特定库”中添加msvcrt.lib
4. 最好在“项目属性-> C/C++ -> 预编译头 -> 创建/使用预编头 ”中选择“自动生成(/YX)” 以避免“fatal error C1010,在查找预编译头指令时遇到意外的文件结尾”,其它地方同海妖提供的配置方法,即可实现VC 2003 .net与matlab6p5混编
好了,配置完成了,现在你在vc6.0中怎么用,在这里就怎么用,呵呵或许matlab的函数库和vc8.0兼容有问题, 不过我到目前为止还没有发现错误,嘿嘿,.目前在放心的用

您当前的位置: