之前看到一個很好的博客,寫的非常清楚,但是現在找不到了~~所以就大概寫一下自己的操作過程,所以,及時寫博客記錄下來,是很有幫助的,放了一個月的假,差點忘光了。
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文件,才可以運行。
其實並不是很難,就是需要設置很多東西,根據問題多查,多設置,就可以了。