关于C#调用matlab生成的dll的一些经验(亲测)

先借用一些老前辈的经验,废话不多说,总之遇到过如下问题

1.安装matlab 2014b 版本的,因为软件需要破解,所以开始没破解完善,经过辗转终于找到完美破解并能生成dll的方法,方法我会贴出来

2.生成dll 过程遇到很多坑,后来发现并解决,生成一个dll 那允许有多个方法的情况(matlab很坑啊,一个方法一个m文件)

3.C#调用的坑,调用的时候只提示给我一个dll但实际上要引用两个生成的一个系统的,具体方法也会贴出来

总结:最后经过辗转反侧是终于实现了,如果有问题大家可以讨论,下面上干货

关于问题1:

其采用的方法就是利用一个叫做MATLAB R2014a Patch的软件,但由于本人的软件版本是MATLAB R2014b,因此这个软件貌似并没有什么用。
进一步了解出现这种情况的的原因是第一次安装时破解不完全造成的,因此楼主就百度“MATLAB 完全破解文件”

关于软件的下载这里贴出来,2014b_crack_mcc_fixed.zip (3.79 MB) 自己去下载就行

替换之前一定做好备份,楼主替换之前就没有备份,但是替着替着MATLAB就不能运行了,好在舍友装的版本和我一样,直接从他的安装目录下考出替换的文件覆盖就行,就这样试了很多次(并非盲目地试),终于解决了,废话说到这,下面是操作步骤。
有用的文件:libmwservices.dll ;license.lic 其实真的就这俩
1. 备份libmwservices.dll ,到你的安装目录下:MATLAB\R2014b\bin\win64,找到该文件,复制出来即可;
2. 将附件中的libmwservices.dll文件,考到上步的目录中覆盖;
3. 运行MATLAB,你会发现你的MATLAB已经处于没被激活的状态,按照提示选择用license文件激活,并选择附件中的license.lic文      件,用于激活;
4. 运行程序测试,这时如果不出意外的话,应该能运行">>mcc -m mfilename"

关于问题2:

直接上步骤

命令行窗口运行deploytool,点击Library Compiler

我感觉图片足以说明一切,出了代码以外,如果连matlat代码不会写,那就请教其他大神吧。我也是抄的。

关于第三个问题:C#调用

项目引用我就不说了吧,,另外一个注意地方,如果你matlab引用版本是X64 的你项目一定要在属性生成部分设置成X64,不然会报错!报错!报错!

 

调用的时候名字很重要,类名在前面设置了,方法名就是 那个m文件的名字,尤其是参数  他提示MWArray ,这个类型我翻看了一下,没啥就按你想要的类型写就行。我是按int

代码如下

matlabLibrary m = new matlabLibrary();
Rlc =m.reliabilityImport(n, r, c);

 因为我的Rlc 是个字符串,就直接成字符串了。参数自己研究哈!

posted @ 2020-01-09 17:32  金楽  阅读(2617)  评论(0编辑  收藏  举报