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文件,才可以运行。  

 

 其实并不是很难,就是需要设置很多东西,根据问题多查,多设置,就可以了。

 

posted @ 2017-09-12 10:19  念苏苏0504  阅读(9067)  评论(0编辑  收藏  举报