如何vs2010调用matlab 2010生成dll

如题所述

首先matlab要安装64位的,一般在64位系统下默认安装64位。
在Matlab中运行mbuild -setup,选择64位的编译器。这个要配合vs2010的安装进行,vs2010中需要有64的编译器。
首先,写一个很简单的加法函数:
function [c] =Add(a, b);
c = a + b;
保存为Add.m
然后进行编译,命令如下:
mcc -W cpplib:libAdd -T link:lib Add
其中,mcc是matlab提供的编译命令,此命令的帮助说明如下:
-W lib:string link:lib
-W是控制编译之后的封装格式,cpplib,是指编译成C++的lib,cpplib后面是指编译的库的名字,-T表示目标,link:lib表示要连接到一个库文件的目标,目标的名字是后面的Add,即自定义m函数的名字。
运行完之后,你的目录下面,将会出现一些文件:
libAdd.cpp
libAdd.lib
libAdd.dll
libAdd.h等
libAdd.dll是编译好的动态库,Add这个函数封装在里面,libAdd.h是对应的头文件,在C里面调用这个函数的时候,需要include这个头文件,在这个头文件的最后,你可以看到下面的内容:
externLIB_libAdd_CPP_API void MW_CALL_CONV Add(int nargout, mwArray& c
, const mwArray&a
, constmwArray& b);
这就是Add的C函数的声明。
nargout表示输出变量的个数
a,b,c就是对应了m函数的几个变量
注意,a,b,c三个变量的类型是mwArray,这是matlab提供的一个特殊的变量类型(在7.0的版本,编译之后,变量类型是mxArray)。
温馨提示:答案为网友推荐,仅供参考
相似回答