<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);