MathLab混合编程成功总结

 

<1> :安装Mathlab软件,目前只要是新装的MathLab操作基本上是一样的,安装破解后,最好亲自查看一下环境变量,变量名:Path

ec:最好把所有的都添加进去,Mathlab安装后,一般会自动设置环境变量,不过个人觉得不完整.本人设置如下:

D:\Program Files\MATLAB\R2010b\runtime\win32;

D:\Program Files\MATLAB\R2010b\bin;

D:\Program Files\MATLAB\R2010b\extern\include;

D:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft;

D:\Program Files\MATLAB\R2010b\bin\win32;

<2> : 设置MathLab编译环境:mbuild -setup->mex -setup .具体过程网上很多,基本上都是正确的.

<3> : VC开发环境设置:

菜单Tool->options->Directories :

Show directories for : 选择include files

 

 

Show directories for : 选择Library files

 

上面红色框!

菜单Project->Setting->选择Link标签:Object/Library Modules :

mclmcrrt.lib MathLab编译出来的lib文件名.lib

lib文件名之间用一个空格隔开.

 

<4> : 设置完上面的以后,基本上就可以了,具体使用可以参照网上demo程序:

下面两位的参照例子不错:

http://hi.baidu.com/karashun/item/0cdd06589d3f4ecbd2e10c7e

http://silencethinking.blog.163.com/blog/static/91149056200810185835241/

<5> : 从上面两个例子,会发现VC调用函数实际传入的参数的数目有点怪,具体可以参照网上一些资料,

这里推荐打开混编后产生的头文件.h,比如我做的一个测试生成的头文件:

Mathlab程序如下:mccdemol.m

function y=mccdemol(x)
y=sin(x);
plot(x,y,'*');
end

对应在头文件倒数第三行:返回值是通过传址的方式进行.

extern LIB_libmccdemol_CPP_API void MW_CALL_CONV mccdemol(int nargout, mwArray& y, const mwArray& x);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2013-08-03 15:39  MMLoveMeMM  阅读(811)  评论(0)    收藏  举报