關於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 是個字符串,就直接成字符串了。參數自己研究哈!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM