visual studioC#调用MATLAB生成的DLL
之前看到一个很好的博客,写的非常清楚,但是现在找不到了~~所以就大概写一下自己的操作过程,所以,及时写博客记录下来,是很有帮助的,放了一个月的假,差点忘光了。
1.首先MATLAB要安装MCR.Install 即MATLAB编译器,并配置环境变量;
2.注册mwcomutil.dll 在cmd中输入regsvr32 mwcomutil.dll即可(要用路径.dll 注意用双引号表示地址"C:\Program Files\MATLAB\R2014a\bin\win64\mwcomutil.dll");
3.在MATLAB端编写函数文件,之后在命令行窗口输入
>>mbuild -setup
MBUILD 配置为使用 'Microsoft Visual C++ 2010 (C)' 以进行 C 语言编译。
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++ -client MBUILD
mex -setup FORTRAN -client MBUILD
(选择C++)
MBUILD 配置为使用 'Microsoft Visual C++ 2010' 以进行 C++ 语言编译。
>> deploytool
选择Library Complier
4.在窗口中进行如下选择:
最后打包,这里完成了打包工作,接下来是在C#端调用DLL文件
5.在visual studio中创建一控制台程序,首先要添加两个引用
1)C:\Program Files\MATLAB\MATLAB Compiler Runtime\v83\toolbox\dotnetbuilder\bin\win64\v2.0\MWArray.dll
2) C:\Users\neu\Documents\MATLAB\myfunct\for_redistribution_files_only\myfunct.dll
myfunct是打包时起的库的名字 myfunct.dll是打包生成的DLL文件
6.解决方案--配置管理器中,要将平台配置与MCR版本一致,这里是x64(不能是Any Cpu)
7.在控制台编写代码,首先引入命名空间,之后就将引入的MATLAB函数当作是库名.类名去使用即可 注意一些数据类型的转换即可
这里打包的.m文件,是简单的求和函数 y=a+b; 所以输入2 3 得到结果为5
.
8.将C:\Users\neu\Documents\Visual Studio 2010\Projects\LibMATLAB\复习调用DLL\bin\x64\Debug目录下的应用程序 exe文件及添加的DLL文件,放在其他计算机上,可以使用
这里注意因为配置了平台,所以是在x64下的exe文件,才可以运行。
其实并不是很难,就是需要设置很多东西,根据问题多查,多设置,就可以了。