VC与Matlab混合编程之调用动态链接库dll——<二>
1、是先建立 matlab 的 m 文件。
ellipsefit.m
其包含:function [Xc,Yc,A,B,Phi,P]=ellipsefit(x,y)
2.MCC命令编译生成得到h、dll、lib等文件
在matlab命令行中输入:
mcc -W cpplib:ellipsefit ellipsefit.m -T link:lib (此方式为c++风格函数)
(具体命令含义可参考《精通matlab与C/C++混合程序设计》刘维,第3版,北京航空航天大学出版社。)
(ellipsefit是生成的lib文件名,可以随意命名。ellipsefit.m是想调用的.m文件名。
至此,可以发现在ellipsefit.m所在的目录生成了一系列文件。我们将要使用:ellipsefit.h, ellipsefit.dll, ellipsefit.lib
2.3:新建一个 VC 工程:test
为了简单,我们在这里建立一个win32控制台程序。如下:
然后,将上面这3个文件(ellipsefit.h, ellipsefit.dll, ellipsefit.lib
)拷贝到VC工程所在的目录中,以便VC调用之,并将.h文件加入到工程中。
其中,ellipsefit.h中的function [Xc,Yc,A,B,Phi,P]=ellipsefit(x,y)
对应的c++风格的函数接口是:
extern LIB_ellipsefit_CPP_API void MW_CALL_CONV ellipsefit(int nargout, mwArray& Xc, mwArray& Yc, mwArray& A, mwArray& B, mwArray& Phi, mwArray& P, const mwArray& x, const mwArray& y);
即在自己的主程序中调用该接口即可,c++中使用mwArray矩阵进行数据操作
2.3 VC 编程:(代码如下 )
// test.cpp : 定义控制台应用程序的入口点。
//